我有下一个问题:
A=[2014;20;2012;32155];
然后我想用字符串字符转换单元格数组中的A
,在每个字符串之前加上字符A
。换句话说,如果我要创建一个手动单元格数组,我希望这样做:
A={'A2014';'A20';'A2012';'A32155'};
有人可以不使用循环来做这个吗?谢谢!
另一种方式是
formatSpec = 'A%d';
B = strtrim(cellstr(num2str(A(:), formatSpec)));
B = reshape(B, size(A));
-
strtrim
参考 -
cellstr
参考 -
num2str
参考
注意,您可以通过将'A%d'
格式说明符更改为其他内容来修改结果字符串的格式。阅读num2str
的文档了解更多细节。
在您的编辑中,您可以这样做,首先将您的数字数组转换为字符串的单元格数组,如您所说:
A = num2cell(A);
A = cellfun(@num2str, A, 'UniformOutput', false);
一旦你这样做了,如果我的理解是正确的,你想在每个字符串之前插入一个A
字符。因此,您可以这样做:
A = cellfun(@(x) ['A' x], A, 'UniformOutput', false);
得到:
A =
'A2014'
'A20'
'A2012'
'A32144'
就像@rayryeng说的那样:
A = num2cell(A);
A = cellfun(@num2str, A, 'UniformOutput', false)