所以我的问题是,当我尝试组合来自不同列的数字时,前导零消失,这是我的代码:
Bthree= [0 0 1
9 1 2
0 5 7]
len=size(Bthree);
A=[];
for jj=1:len(1)
s=int2str(Bthree(jj,1:3));
s=s(s~=' ');
A(jj,:)=[str2num(s)];
end
输出
1
912
57
因为你可以看到前导零消失但我想零保持
期望的输出:
001
912
057
我可以这样做吗?感谢
答案 0 :(得分:2)
如果您想保留前导零,则可能需要将数据存储为字符串:
Bcell = strrep(cellstr(num2str(Bthree)),' ','')
返回一个字符串的单元格数组。对于char数组,请执行以下操作:
Bchar = cell2mat(Bcell)
或者您也可以通过以下方式直接获取char数组:
Bchar = reshape(sprintf('%i',Bthree),size(Bthree))
返回:
Bcell =
'001'
'912'
'057'
Bchar =
001
912
057
由于你似乎不确定你是否真的需要前导零,这里有一个转换为双打的简短方法:
Bdouble = str2num(Bchar)
Bdouble =
1
912
57
答案 1 :(得分:0)
将int2str
替换为num2str
。
然后您的代码应如下所示:
Bthree= [0 0 1;9 1 2;0 5 7];
A=[];
for jj=1:size(Bthree,1)
s=num2str(Bthree(jj,1:3));
A(jj,:)=[str2num(s)];
end