2016-11-29 5 views
0

私は6つの値を持つ文字列があります:最初のものはフロート番号あり、私が使用して数値を取得したいと思い手紙、残りです番号を付ける文字列。変数と小数点の同じデリミタ。 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

ありがとう!実際にはそれほど難しいことではありませんでしたが、私はこの解決策では考えなかった –

関連する問題