csvファイルの一括インポートおよび一括処理
24 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
2点ほどお伺いしたいです.
➀PC内にある対象者1人分の10試技のデータを一括でインポートする方法はありますか?現在,一つのデータずつインポートしているのでかなり時間がかかっています.for文かなにか使えばよいんでしょうか...
②取り込んだ10試技のデータを一つのコードで一気に処理したいです.for文を試したのですがよくわかったため,毎回の処理で名前を変えています.具体的なコードも教えていただけますと助かります.
初歩的な質問で申し訳ありません.どなたかよろしくお願い致します.
4 commentaires
Takumi
le 5 Juin 2020
いま処理したいcsvファイルのフォーマットや、現在どのようにファイルをインポートしているか示していただけますともう少し詳細な回答ができます。
Réponses (1)
Takumi
le 5 Juin 2020
Modifié(e) : Takumi
le 5 Juin 2020
例えば、1列目に要素番号、2列目にランダムな数が5つ並んだcsvファイルが3つあり、それぞれファイル名がfile1.csv、 file2.csv、 file3.csvとなっているとします。以下のコードでサンプルファイルを生成できます。
% サンプルデータ
numfiles = 3;
x = (1:5)';
for k = 1:numfiles
y = rand(size(x)); % 乱数
mydata = table(x,y);
myfilename = sprintf('file%d.csv', k);
writetable(mydata,myfilename);
end
そして、そのファイルを連続で読み込み、ここでは簡単に、二列目の平均を算出したいとします。Rさんのcsvファイルのヘッダーがどうなっているかわかりませんが、例えば上で生成したcsvファイルはreadtable関数でテキスト ファイルから table に読み取ることができ、二列目のデータ(ここでは変数y)に対して平均化処理を適用することができます。
% ファイルのインポート,平均処理
clear
numfiles = 3;
mydata = cell(1, numfiles);
ave = zeros(1,numfiles);
for k = 1:numfiles
myfilename = sprintf('file%d.csv', k);
mydata{k} = readtable(myfilename);
ave(k) = mean(mydata{k}.y);
end
13 commentaires
Takumi
le 8 Juin 2020
Time = mydata{k}.VarName1;
ではなくて
Time = mydata{k}.Var1;
ではないでしょうか。
Voir également
Catégories
En savoir plus sur Bartlett dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!