• 締切済み

matlabで、平均値を求める方法を教えて下さい。

matlabで、複数のファイルにある数値の平均値を求める方法を教えてください。 sample1.nc, sample4.nc, sample7.nc の3つのファイルがあり、 それぞれに3つのデータが含まれています。 sample1.ncには data1,data2,data3 sample4.ncには data4,data5,data6 sample7.ncには data7,data8,data9 以上の計9個のdataがあります。 ここで例えばdataにはある人の身長が書かれているとします。 data1=147cm,data2=150cm,data3=140cm,・・・ など。 この場合に、data1からdata9の9個の数値(身長)の平均値を matlabを用いて求めるプログラムを教えてください。

みんなの回答

  • Kules
  • ベストアンサー率47% (292/619)
回答No.2

そうですね…各ファイルに入っているデータは3つで固定なんですかね? forループで回したいってことなんで、ループで回しましょうか。 for k=1:3:○○; fid=fopen(['sample' num2str(k) '.nc']); … end 文字列に数値(例えばループ変数)を入れたい時はnum2strを使うのが一番簡単でしょうか。 Cを使った経験があるのならsprintfの方がしっくりくるかもしれませんね。 詳しい使い方はhelpなど見ていただければいいかと思います。 他の部分は先の回答者さんの書いたもので事足りると思うので省略します。 参考になれば幸いです。

回答No.1

ファイルにはどっちが書かれてるのかな? (1) 147cm,150cm,140cm (2) 147,150,140 (2)ならベタで書くと↓ fid1 = fopen('sample1.nc,', 'rt'); d1 = fscanf(fid1, '%d,%d,%d', [3 inf]); fclose(fid1); fid4 = fopen('sample4.nc,', 'rt'); d4 = fscanf(fid4, '%d,%d,%d', [3 inf]); fclose(fid4); fid7 = fopen('sample7.nc,', 'rt'); d7 = fscanf(fid7, '%d,%d,%d', [3 inf]); fclose(fid7); mean([d1 d4 d7]) helpやlookforコマンドで調べれば直ぐ解る質問ですが・・・・。

kotben
質問者

補足

回答ありがとうございます。 ファイルには147,150,140 といった形でかかれているのですが、 実際には.ncファイルが100個以上ありますので、 回答してくださったようにひとつずつファイルを開いて、 mean([d1 d4 d7])というようなプログラムは書くのは難しいです。 自分は、forを使ってループさせる必要があるのかのと思っているの ですが、どうでしょうか? 情報不足で申し訳ございませんでした。

関連するQ&A

専門家に質問してみよう