dポイントプレゼントキャンペーン実施中!

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を用いて求めるプログラムを教えてください。

A 回答 (2件)

そうですね…各ファイルに入っているデータは3つで固定なんですかね?



forループで回したいってことなんで、ループで回しましょうか。
for k=1:3:○○;
fid=fopen(['sample' num2str(k) '.nc']);

end
文字列に数値(例えばループ変数)を入れたい時はnum2strを使うのが一番簡単でしょうか。
Cを使った経験があるのならsprintfの方がしっくりくるかもしれませんね。
詳しい使い方はhelpなど見ていただければいいかと思います。

他の部分は先の回答者さんの書いたもので事足りると思うので省略します。

参考になれば幸いです。
    • good
    • 0

ファイルにはどっちが書かれてるのかな?


(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コマンドで調べれば直ぐ解る質問ですが・・・・。

この回答への補足

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

情報不足で申し訳ございませんでした。

補足日時:2011/10/15 02:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!