假设我有一个矩阵 a= [1 3; 4 2],我使用这段代码将这个矩阵转换为二进制格式:

a=magic(2) 
y=dec2bin(a,8) 
e=str2num(y(:))'; 

结果是:

  y = 
 
00000001 
00000100 
00000011 
00000010 
 
 
e = 
 
Columns 1 through 17 
 
 0     0     0     0     0     0     0     0     0     0     0     0     0         0     0     0     0 
 
Columns 18 through 32 
 
 0     0     0     0     1     0     0     0     0     1     1     1     0        1     0 

现在,当我想取回原始矩阵时,我会反转函数:

  s=num2str(e(:))'; 
  r=bin2dec(s) 

我得到的结果是:

r = 
 
    1082 

我该怎么做才能得到原始矩阵?不是数字 提前谢谢你

请您参考如下方法:

您正在执行破坏原始结构的额外进程:

a=magic(2) 
y=dec2bin(a,8) 
r=bin2dec(y) 

这里 r 是你的答案,因为 y 已经删除了 a 的矩阵结构。要重新创建矩阵,您需要:

originalmatrix = reshape(r,size(a)) 
 
originalmatrix = 
 
 1     3 
 4     2 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!