連番名のcsvファイルからforループ等を使って標準偏差をもとめたい
Show older comments
プログラミング初心者です.
①ファイルは:N-1.csv, N-2.csv, N-3.csv, , N-4.csv,, N-5.csv, N-6.csv・・・・N-9.csv
の連番で,すべて29X29の行列です.
②1セットを3枚(N)とし,5セット(cyc)の平均(Dave)と偏差(平均との差),標準偏差を求めようとしています.
③統計処理で対応するファイルは,3枚とびなのでそれぞれ
N-1.csv, N-4.csv, N-7.csv, ・・・1セット目.これに平均・標準偏差の処理をして,29X29の行列Na-1.csv として保存
N-2.csv, N-5.csv, N-8.csv, ・・・2セット目.これに平均・標準偏差の処理をして,29X29の行列Na-2.csv として保存
N-3.csv, N-6.csv, N-9.csv, ・・・3セット目.これに平均・標準偏差の処理をして,29X29の行列Na-3.csv として保存
・・・5セットまで実行します.
④”平均”や標準偏差は行列 要素(mean、std)でなく,同じサイズの複数の行列間 との演算です.
⑤標準偏差は,エクセル関数STDEV.Pに該当するものとします.
平均処理ができたプログラムは以下です.※実際には扱うファイル数が多いため変数を使用して作成しています.
同様に偏差,標準偏差の処理を行いたいのでご教示頂けませんでしょうか.
matlab2013で機能が乏しい場合は2019でも大丈夫です.
宜しくお願い致します.
data = zeros(29,29);
n= N*cyc
for a=1:N % N=3 ...3枚飛びを指定
Dsum=0;
for number = a:N:n
num = num2str(number);
data= xlsread(['絶対パス\N-' num '.csv']);
%1セット分の平均を求める
Dsum = Dsum + data ;
Dave=Dsum/cyc ; %平均
No=num2str(a);
xlswrite(['絶対パス\Na-' No '.csv'],Dave); %CSVファイルとして連番保存
contourf(Dave,200,'LineStyle','none'); %カラーの分布画像にする
end
end
Accepted Answer
More Answers (0)
Categories
Find more on ループと条件付きステートメント in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!