我有下一个问题:
A=[2014;20;2012;32155];
然后我想在带有字符串字符的单元格数组中转换A
,并在每个字符串前加上字符A
。换句话说,如果我要创建手动单元阵列,我希望这样做:
A={'A2014';'A20';'A2012';'A32155'};
任何人都可以在不使用循环的情况下完成此操作吗?谢谢!
答案 0 :(得分:3)
另一种方式是
formatSpec = 'A%d';
B = strtrim(cellstr(num2str(A(:), formatSpec)));
B = reshape(B, size(A));
请注意,您可以通过将'A%d'
格式说明符更改为其他内容来修改结果字符串的格式。请阅读num2str
的文档以获取更多详细信息。
答案 1 :(得分:2)
就像@rayryeng说的那样有效:
A = num2cell(A);
A = cellfun(@num2str, A, 'UniformOutput', false)
答案 2 :(得分:2)
通过编辑,您可以首先将数字数组转换为字符串的单元格数组,如您所说:
A = num2cell(A);
A = cellfun(@num2str, A, 'UniformOutput', false);
执行此操作后,如果我的理解正确,您希望在每个字符串前插入A
字符。因此,您可以这样做:
A = cellfun(@(x) ['A' x], A, 'UniformOutput', false);
你会得到:
A =
'A2014'
'A20'
'A2012'
'A32144'