1

次のような.txtファイルがあります。

******text*******
(30 lines containing text and *)
******text*******

a b c
a b c
a b c
a b c
a b c
a b c
a b c

(私はaをx、b、cをy1、y2としてプロットを作成しています)

textscanでこれらの30行をスキップするにはどうすればよいですか?私はこれを持っていましたが、うまくいきませんでした:

[x y1 y2] = textscan('file_name.txt', '%f %f %f', 30);

その他:3番目の列の値の平均を作成するにはどうすればよいですか?

4

2 に答える 2

5

特定の行の処理をスキップするにはどうすればよいですか?

行スキップに関していくつかのオプションがあります。

  • 行数が常に静的で、常にファイルの先頭にある場合:

    HeaderLinesNの値で渡します。Nは処理したくない数値です。

    [x y1 y2] = textscan ('file_name.txt', '%f %f %f', 'HeaderLines', 30 + 2);

  • すべての行が同じ文字列で始まる場合

    *コメントスタイルはCommentStyleABCの値で渡します。ABC

    スキップするすべての行が。で始まる場合は*、に渡し'*'ますtextscan

    [x y1 y2] = textscan ('file_name.txt', '%f %f %f', 'CommentStyle', '*');


いくつかの配列の平均を取得するにはどうすればよいですか?

いくつかの配列の平均を取得するには、次を使用しますmean

y1_average = mean (y1);

のドキュメントtextscan

のドキュメントmean

于 2011-12-23T15:10:03.113 に答える
0

スキップする行数がわかっている場合は、 TEXTSCAN関数HeaderLinesのパラメーターを使用します。

[x y1 y2] = textscan('file_name.txt', '%f %f %f', 'HeaderLines',30);

フォーマット文字列の後に整数引数を使用する場合は、フォーマット文字列をこの回数(この場合は読み取る行数)適用することを意味します。だからそれはあなたが望むものの反対です。

平均を取得するには、MEAN関数を使用します。

y2_avg = mean(y2);

于 2011-12-23T15:03:36.670 に答える