Matlab 如何能把矩阵[1 0 1 1]变成字符串‘1011’?

如题所述

如果中间允许空格的话,楼上说的num2str()函数可以用。但是如果中间不允许有空格的话。需要通过以下代码转换:

for i=1:length(a)
if i==1
b=num2str(a(i));
else
b=[b,num2str(a(i))];
end
end

这是运行示例,使用代码可以不带空格,直接使用num2str()函数中间会有空格。
>> a=[1 2 4 6 7]

a =

1 2 4 6 7

>> for i=1:length(a)
if i==1
b=num2str(a(i));
else
b=[b,num2str(a(i))];
end
end
>> b

b =

12467

>> num2str(a)

ans =

1 2 4 6 7

>>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-26

仅限由单个数字构成的向量:

arrayfun(@num2str,向量名)

可由两位以上数字构成的向量:

replace(num2str(向量名),' ','')


例如:

a = [1 0 1 0 1];

b = arrayfun(@num2str,a);

disp(b)

输出'10101'


例如:

a = [1124  234  222];

b = replace(num2str(a),' ','');

disp(b)

输出'1124234222'

第2个回答  2010-08-07
直接将矩阵由数字型转换为字符型;
若a=[1 0 1 1];
则b=num2str(a);
b等于字符'1011'
第3个回答  2018-04-10
a=[1 0 1 1];

sprintf('%d',a);
这样就可以了
相似回答