将字符串转换为数组编号

时间:2011-12-08 10:05:28

标签: matlab

如何将字符串转换为数字数组?在示例中: str='1,2,3,4.5' to number=[1 2 3 4.5]

我在下面写了代码,但是有问题。

str='1,2,3,4.5';
tmp = regexp (str,',','split');
tmp2=[];
for(i=1:length(tmp))
tmp2(i)=cell2mat(tmp(i))
end

3 个答案:

答案 0 :(得分:4)

从技术上讲,@ ame.b的答案是正确的。但是为了多样性,在这种情况下您也可以执行以下操作,因为分隔符是,

str2num(str)

答案 1 :(得分:3)

您使用str2double时需要

cell2mat

编辑:您甚至可以通过调用for来替换最后四行(即tmp2循环和cellfun的初始化):< / p>

tmp2=cellfun(@str2double,tmp)

答案 2 :(得分:3)

我必须在这里遗漏一些东西,但为什么你不能只使用sscanf? 例如:

sscanf('1,2,3,4.5','%f,')

ans =

 1.0000
 2.0000
 3.0000
 4.5000