2016-03-26 1 views
0

Я использую этот код для ввода введенной строки через текстовое поле, которое содержит текст, подобный этому (1,1,1,3,4,7,9,9, 9), а затем я разделить его, зависит от того, как хранить каждое число в массиве как результат в Matlab, но проблема в том, когда я использую str2double для temp. Я даю ошибку. Я думаю, что я использую ее не в том месте.Сохраните строку после сложения числа в массиве в Matlab

код:

points = get(handles.pointstxt,'String'); 
tmp = regexp(points,'([^ ,:]*)','tokens'); 
tmp 
notesvector = cat(2,tmp{:}) 

результат будет выглядеть так: enter image description here

Но я хочу сделать это следующим образом: enter image description here

+0

Обеспечить работоспособный пример и указать, что сообщение об ошибке в полном объеме. Где используется 'str2double'? Является ли 'point' просто строкой' '1,1,1,3,4,7,9,9,9''? Вы можете использовать 'textscan' для прямого преобразования строки в double. – horchler

+0

Я не хочу использовать textscan, потому что он дает мне результат, поскольку одна ячейка не похожа на массив каждого номера в одной ячейке, об использовании str2double я использовал его здесь: notesvector = cat (2, str2double (tmp {:})), но это неправильно, потому что он не может преобразовать все данные одновременно! –

+0

Что случилось с массивом ячеек? Если вы хотите преобразовать его в массив, просто используйте 'double_array = [double_cell_array {:}];'. Если вы не используете 'str2double', передайте ему массив ячеек:' str2double (tmp) '. – horchler

ответ

0
points = get(handles.pointstxt,'String'); 
tmp = regexp(points,'([^ ,:]*)','tokens'); 
notesvector = cat(2,tmp{:}) 
c = str2double(notesvector) 
+0

@JeffreyBosboom Это должно быть полным ответом, за [комментарий OP] (http://stackoverflow.com/q/36240927/#comment60115264_36240927) –

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