在MATLAB中如何将数组转换为字符串?

3

我有一个向量a = [1 2 3 4 5],如何将其转换为字符串b='12345'?

我尝试了b=num2str(a),但它输出的是1 2 3 4 5

2个回答

4
您可以在 num2str 中指定格式,就像在C语言的 sprintf 函数中一样:
b = num2str(a,'%i');

或者使用sprintf函数:

b = sprintf('%i',a);

如果变量a仅包含个位数,你也可以直接转换为字符型:char
b = char(a+'0');

非常感谢Luis帮我解决了这个问题,那正是我想要的。我还有一个问题,如何使c的第一个元素具有这个值?例如c(1) = 12345? - user3622258
我从你的问题中理解到,所需的结果'12345'是一个字符串,而不是一个数字(否则使用Shai的答案,去掉num2str部分)。所以你想要将一个_字符串_赋值给变量c的第一个元素?如果c必须存储其他可能长度不同的字符串,则c应该是一个单元数组;然后你只需要执行c{1} = b - Luis Mendo
感谢Luis Mendo和Shai提供的意见。很抱歉我在第一个问题中没有表述得更清楚,因为我最终希望从数组a中获得的输出是一个字符串'12345',以便我可以将其放入另一个数组的位置中。 - user3622258

1
你需要先将向量转换为一个单一的数字(假设所有元素都在0..9范围内):
a = 1:5;
num = ( 10.^((numel(a)-1):-1:0) ) * a'; %'
b = num2str( num )

你可以尝试这段代码这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接