我正试图创建一个MATLAB脚本,将一个100x100的正整数矩阵转换为它们的无符号二进制值。示例matDec=[1,2;1,2]转换为matBin=[000000000 100000010;0000000 10000010]。
我试过类似的东西:
BinI=int2bit(I,8);
其中CCD_ 1是初始矩阵,而CCD_。
但我得到了一个800x100的矩阵,这意味着每个元素的位被分成了8个元素。
设为
A1 =
4 -2 4 -10
5 3 -10 -8
5 -7 -5 7
然后
A2=dec2bin(A1)
A2 =
12×8 char array
'00000100'
'00000101'
'00000101'
'11111110'
'00000011'
'11111001'
'00000100'
'11110110'
'11111011'
'11110110'
'11111000'
'00000111'
你是对的,尽管在命令行中,结果看起来每一行都只是一个元素,但类型是char
,所以每个单独的字符实际上都是一个元素。
一种获得与输入大小相同的搜索矩阵的方法是使用命令string
sz1=size(A1);
reshape(string(dec2bin(A1)),sz1)
=
3×4 string array
"00000100" "11111110" "00000100" "11110110"
"00000101" "00000011" "11110110" "11111000"
"00000101" "11111001" "11111011" "00000111"
命令string
是在MATLAB版本2016b中引入的。
在以前的版本中没有命令string
。