преобразовать строку в номер массива - PullRequest
3 голосов
/ 08 декабря 2011

как преобразовать строку в массив чисел?в примере: 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 ]

4 голосов
/ 08 декабря 2011

Технически, ответ @ ame.b правильный.Но ради разнообразия вы также можете сделать следующее в этом случае, потому что разделителями являются ,:

str2num(str)
3 голосов
/ 08 декабря 2011

Я, должно быть, что-то здесь упускаю, но почему вы не можете просто использовать sscanf?Например:

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

ans =

 1.0000
 2.0000
 3.0000
 4.5000
3 голосов
/ 08 декабря 2011

str2double - это то, что вам нужно, где вы использовали cell2mat.

edit: Вы даже можете заменить последние четыре строки (то есть цикл for и инициализацию tmp2) вызовом cellfun:

tmp2=cellfun(@str2double,tmp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...