Matlab有一个num2str命令:
>> num2str([1 2 30])
ans =
'1 2 30'
和str2double命令:
>> str2double({'1','2','30'})
ans =
1 2 30
是否有命令生成字符数组的单元格数组(在Matlab 2017a之前称为字符串)?
>> desired([1 2 30])
ans =
1×3 cell array
'1' '2' '30'
如果没有命令,那么一个简短而明确的解决方案不会使用循环?
答案 0 :(得分:5)
如果您可以使用String
数组:
>> string([1 2 30])
ans =
1×3 string array
"1" "2" "30"
或者:
>> cellstr(string([1 2 30]))
ans =
1×3 cell array
{'1'} {'2'} {'30'}
如果没有,总会有(未记录的)sprintfc
:
>> sprintfc('%d', [1 2 30])
ans =
1×3 cell array
{'1'} {'2'} {'30'}
答案 1 :(得分:1)
将数组转换为数字的单元格数组,然后对每个单元格应用num2str:
cellfun(@num2str,num2cell([1 2 30]),'UniformOutput',false)
可能有一个比'UniformOutput'
false
更清晰的解决方案。