規則性のある複数のファイルで同一の計算の仕方
조회 수: 7 (최근 30일)
이전 댓글 표시
まず,a01.csv,a02.csv,a03.csv…のような名前に規則性のある複数ファイルがあります。
例えば,それぞれのファイルの1列目と2列目のデータを一様に掛け算をしたいのですが,いい方法はありますでしょうか?
よろしくお願いします。
댓글 수: 0
채택된 답변
Atsushi Ueno
2023년 9월 28일
for i = 1:10
writematrix(randi(9,5,2), sprintf('a%02d.csv',i))
end % 動作確認用サンプルCSVファイルa01.csv,a02.csv,a03.csv…を10個作成
for k = 1:10
data = readmatrix(sprintf('a%02d.csv',k)); % CSVファイルから読み込み
data = [data, data(:,1).* data(:,2)]; % 1列目×2列目を3列目に格納して
writematrix(data, sprintf('a%02d.csv',k)); % 元のCSVファイルに書き込む
% fprintf('\na%02d.csv',k); type(sprintf('a%02d.csv',k)) % 結果確認用
end
추가 답변 (1개)
Atsushi Ueno
2023년 9월 28일
データストアを使う方法
for i = 1:10
writematrix(randi(9,5,2), sprintf('a%02d.csv',i))
end % 動作確認用サンプルCSVファイルa01.csv,a02.csv,a03.csv…を10個作成
ttds = tabularTextDatastore(pwd); % 上記ファイルをデータストアに登録
tds = transform(ttds, @myProcessFunction); % 変換(1列*2列⇒3列)
writeall(tds,pwd,'OutputFormat','csv','FilenameSuffix','mod'); % データストアをファイルに書き出す
% ls * % 結果確認用 カレントフォルダ直下にフォルダが作成され、内部に新たなCSVファイル群が出力される
% a = dir; cd (a(end).name); type a01mod.csv % 結果確認用
function x = myProcessFunction(x)
x.Var3 = x.Var1 .* x.Var2; % 変換(1列*2列⇒3列)
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!