什么命令在Matlab中执行str2double的反转?

时间:2018-05-31 17:41:35

标签: matlab casting

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'

如果没有命令,那么一个简短而明确的解决方案不会使用循环?

2 个答案:

答案 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更清晰的解决方案。