0

データはこんな感じ

5.1,3.5,1.4,0.2,Iris-setosa

これを使って読みながら

data = fscanf(file, '%f,%f,%f,%f,%s');

datafloat と string の組み合わせではなく、float の配列であることが判明しました。では、txt からこのデータを読み取るにはどうすればよいでしょうか。

4

2 に答える 2

0

fscanf の Matlab ドキュメントから:

出力引数

A: 配列です。

フォーマットに以下が含まれている場合:

数値指定子のみ。A は数値です。...

文字または文字列指定子 (%c または %s) のみ。A は文字配列です。...

数値指定子と文字指定子の組み合わせ。A は double クラスの数値です。MATLAB は、各文字を対応する数値に変換します。この変換は、形式がすべての数値を明示的にスキップする場合でも発生します (たとえば、'%*d %s' の形式)。

したがって、最善の策は、すべてを文字列として読み取り、str2num や str2double などを使用して数値文字列を数値に変換することです。

于 2013-06-23T04:31:34.780 に答える
0

または、浮動小数点値を実際に格納する 4 つの浮動小数点値があり、残りは文字列の ASCII 数値を格納することがわかっているため、いつでもデータを分割し、文字列であることがわかっている部分を文字。何かのようなもの:

flt = データ (1:4); str = char(データ(5:終了));

于 2013-06-23T04:48:54.670 に答える