2016-03-26 17 views
0

このコードを使用して、入力した文字列をこのようなテキスト(1,1,1,3,4,7,9,9、 9)、次にそれを分割してMatlabの結果として配列に各数値を格納するが、tempにstr2doubleを使用しているときに問題がある。私は間違った場所でエラーを出すだろう。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'はどこで使われますか? 'points'は文字列' 1,1,1,3,4,7,9,9,9''だけですか? 'textscan'を使って文字列をdouble型に直接変換することができます。 – horchler

+0

私はここでそれを使用しました:str2doubleの使用については、1セルで各数字の配列を好きではない1つのセルとして結果を与えるので、私はtextscanを使いたくありません: 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)によれば、これは完全な答えになることを意図しています。 –

関連する問題