как преобразовать строку в массив чисел?в примере: str='1,2,3,4.5' to number=[1 2 3 4.5].
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
Технически, ответ @ ame.b правильный.Но ради разнообразия вы также можете сделать следующее в этом случае, потому что разделителями являются ,:
,
str2num(str)
Я, должно быть, что-то здесь упускаю, но почему вы не можете просто использовать sscanf?Например:
sscanf
sscanf('1,2,3,4.5','%f,') ans = 1.0000 2.0000 3.0000 4.5000
str2double - это то, что вам нужно, где вы использовали cell2mat.
str2double
cell2mat
edit: Вы даже можете заменить последние четыре строки (то есть цикл for и инициализацию tmp2) вызовом cellfun:
for
tmp2
cellfun
tmp2=cellfun(@str2double,tmp)