bri*_*tar 3 matlab bit-manipulation octave
我想取一个n
定义通信代码中位数的整数和一个定义我分配给位的字母表的向量0:n-1
,并输出一个矩阵/单元格数组,其中包含每个状态的字母表示法,即:
function M = mycommarray(3,[-1,1])
Run Code Online (Sandbox Code Playgroud)
产生
M = [{-1,-1,-1}, {-1,-1,1}...]
Run Code Online (Sandbox Code Playgroud)
我尝试用这种方法更容易dec2bin(0:7,3)
,但似乎没有一种快速的方法可以将零写成-1
s.
是否有接近预先包装的东西呢?在这种情况下,我不希望任何人为我(与家庭作业相关).
dec2bin
实际上并不是解决问题的最佳方法,因为它的结果是一个字符串数组(即一个字符矩阵),其中每个数字都是一个字符.如果要'-1'
表示逻辑"0",那将是两个字符,并且它会引入问题.
考虑一种替代方法bitget
.利用Shai的建议,执行以下操作:
[bits, values] = meshgrid(1:3, 0:7);
M = 2 * bitget(values, bits) - 1;
Run Code Online (Sandbox Code Playgroud)
将产生你想要的东西:
M =
-1 -1 -1
1 -1 -1
-1 1 -1
1 1 -1
-1 -1 1
1 -1 1
-1 1 1
1 1 1
Run Code Online (Sandbox Code Playgroud)