使用cellfun将字符串转换为num



我有下一个问题:

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)

最新更新