如何在MATLAB中从单元格数组转换为数值

时间:2017-10-23 15:36:33

标签: string matlab type-conversion cell-array

我想将存储在单元格数组中的字符串中的数值转换为数值数组。

像这样:

IDcell=cell(10,1);
IDcell(:,1)={'A123'};
IDnum(1:size(IDcell,1),1)=str2num(IDcell{:, 1}(1,2:4));

最后一部分是问题所在。可能的是:

IDnum(1,1)=str2num(IDcell{1, 1}(1,2:4));

但不是一次整个阵列。

非常感谢, smaica

3 个答案:

答案 0 :(得分:2)

从16b开始,有新的文本函数和字符串数据类型使这很容易

>> IDcell=cell(10,1);
>> IDcell(:,1)={'A123'};

>> IDcell = string(IDcell);
>> nums = extractAfter(IDcell,'A');
>> nums = double(nums)

nums =

    123
    123
    123
    123
    123
    123
    123
    123
    123
    123

答案 1 :(得分:1)

此处的其他答案将有效。如果您运行相对较新版本的Matlab,Matlabbit对字符串的使用将起作用。 Hielke的循环或使用cellfun是我通常会做这样的事情。但是,这里有一个替代方案纯粹是因为在Matlab中似乎总有多种方法可以解决问题。

>> IDchar = char(IDcell);
>> nums= str2num(IDchar(:,2:4))

nums=

   123
   123
   123
   123
   123
   123
   123
   123
   123
   123

答案 2 :(得分:0)

你需要一个循环:

df[0].describe()

您可能会感兴趣的是cellfun