我想将存储在单元格数组中的字符串中的数值转换为数值数组。
像这样:
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
答案 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)