規則性のある複数のファイルで同一の計算の仕方
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
まず,a01.csv,a02.csv,a03.csv…のような名前に規則性のある複数ファイルがあります。
例えば,それぞれのファイルの1列目と2列目のデータを一様に掛け算をしたいのですが,いい方法はありますでしょうか?
よろしくお願いします。
0 commentaires
Réponse acceptée
Atsushi Ueno
le 28 Sep 2023
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
Plus de réponses (1)
Atsushi Ueno
le 28 Sep 2023
データストアを使う方法
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
Voir également
Catégories
En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!