我需要在数字向量和字符串向量之间切换:
a = [1, 2, 4, 5]
b = {'xx1', 'xx2', 'xx3', 'xx4'}
我尝试了 strcat('XX', num2str(a))
,但它返回了 XX1 2 3 4 5
,这不是我想要的。有人能告诉我如何从 a
创建 b
以及如何从 b
创建 a
吗?谢谢!
最佳答案
不需要循环或cellfun
。让
a = [1, 2, 4, 15];
b = {'xx1', 'xx2', 'xx4', 'xx15'};
从b
到a
使用 num2str
将 a
转换为字符串元胞数组使用格式说明符 '%-i'
来利用 cellstr
的事实忽略尾随空格;在使用后者通过 strcat
连接后:
b_from_a = strcat('xx', cellstr(num2str(a(:), '%-i'))).';
从a
到b
使用 strrep
从每个字符串中删除 xx
, 然后申请 str2double
:
a_from_b = str2double(strrep(b, 'xx', ''));
关于string - matlab向数字向量的每个元素添加一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48955421/