2016-11-29 2 views
0

У меня есть строка с шестью значениями:Строка на номер. Такой же разделитель для переменных и десятичных знаков. Matlab

datastring = A, 12229, 1480413555450, 139,1473389, 012,3362331, -001,7571955 

где первая из них письмо, а остальные числа с плавающей точкой, я хотел бы получить числовые значения с помощью:

data=textscan(datastring,'%s %f %f %f %f %f','Delimiter',','); 

проблема в том, что как десятичные знаки, так и разные значения разделены на ,, так что вы знаете, как я могу это сделать?

PS: Я также пытался с разделителем быть ', ', то есть с пробелом, но не работает ни один.

+1

Какой ужасный формат. Не можете ли вы убедиться, что он не используется? имея один и тот же символ для разделения значений и десятичных знаков крики «сбой» –

+0

Я знаю, что формат ужасен, но я не могу ничего с ним сделать. Я просто экспортирую данные из приложения в Android в Matlab –

+0

Я бы заменил каждое ',' чем-то еще до 'textscan' –

ответ

2

Вы можете преобразовать «,» в нечто другое, что не должно быть в строке, а затем преобразовать оставшиеся «,» в «.». а затем используйте свой исходный код, но измените разделитель на «что-то еще», например.

tempStr = regexprep (regexprep (datastring, ', ', '# '), ',', '.'); 
data=textscan(tempStr,'%s %f %f %f %f %f','Delimiter','#') 
+0

Спасибо! На самом деле это было не так сложно, но я не думал об этом решении –

Смежные вопросы