【发布时间】:2024-01-11 21:34:01
【问题描述】:
我有两个矩阵。矩阵A(2048,64) 和矩阵B(10000,64)。这些矩阵的每个元素中的值都是一个二进制位,所以每一行都是一个 64 位二进制值的表示,所以矩阵的每一行的大小在2^63 和2^0 之间;分别从最高有效位到最低有效位。
问题:
对于A 的每一行,我想在B 中找到在绝对数字意义上最接近它的值。
考虑A(i,1:64) 是十进制值Xi 的二进制表示,B(j,1:64) 是十进制值Yj 的二进制表示。所以第一步我想找到最好的j,这样X1或A(1,1:64)的数值最接近Yj处的元素,即abs(X1-Yj)在j的所有可能值中最小化.
下图来自here,很好地描述了我的问题,但不同之处在于我的每个值都包含在包含 64 个元素的矩阵的一行中。
我尝试将 64 位值转换为十进制,但 dec2bin 仅支持高达 56 位的值。
【问题讨论】:
-
矩阵中不能有单元格。你可以在一个单元格中有一个矩阵
-
手动转换为小数,然后使用 Mathworks Central 上给出的答案
-
@SardarUsama 我现在区分单元格数组和矩阵。可能我应该使用其他词,例如矩阵房间(而不是单元格),但我不知道正确的词以避免误解。如果您知道,请编辑问题。
-
@Adriaan 我写了一个手动转换函数,但是它确实会导致精度损失,即对于大值,不保留二进制值的低位并且不精确计算距离。
标签: matlab matrix type-conversion distance unsigned-integer