一部分だけ名前が共通している複数のmatファイルを一括でloadし、エクセルに保存する
조회 수: 72 (최근 30일)
이전 댓글 표시
ファイル名が、
jirei_
で始まる全てのmatファイルを一括でloadし、それを同時にエクセルファイルに書き込みたいのですが、何か方法はありますでしょうか。
因みに以下は、1つのファイルをloadし、それをエクセルファイルに保存するまでのコードです。 "~" には任意の文字が入ります。
この操作を、jirei_という文字列が含まれる全てのファイルに対して行うコードを作りたいと思っています。
load 'jirei_"~".mat';
filename = 'jirei_"~".xlsx';
C = {'T','X'}
writecell(C,filename,'Sheet',1,'Range','A1');
writematrix(T,filename,'Sheet',1,'Range','A2'); %matファイル内の変数Tを一列目に保存%
writematrix(X,filename,'Sheet',1,'Range','B2'); %matファイル内の変数Xを二列目に保存%
よろしくお願いいたします。
댓글 수: 0
채택된 답변
Atsushi Ueno
2021년 8월 14일
files = what; % 現在のフォルダ内のMATLABファイル一覧を取得
for i = 1:length(files.mat)
if regexp(files.mat{i},'^jirei_') % matファイル名が"jirei_"で始まるかどうか判定
load(files.mat{i}); % matファイル名が"jirei_"で始まるものを読込
filename = strrep(files.mat{i},'.mat','.xlsx');
writecell({'T','X'},filename,'Sheet',1,'Range','A1');
writematrix(T,filename,'Sheet',1,'Range','A2'); %matファイル内の変数Tを一列目に保存%
writematrix(X,filename,'Sheet',1,'Range','B2'); %matファイル内の変数Xを二列目に保存%
end
end
추가 답변 (1개)
Hernia Baby
2021년 8월 14일
편집: Hernia Baby
2021년 8월 14일
【一例】
現在のフォルダ内にある「Sample_~.mat」をすべて取得します
ついでに「.mat」の名前を「.xlsx」に変換する準備をします
str = dir('Sample_*.mat');
txt = ".xlsx";
後はfor分で操作していきます
エクセルの操作はこの中に入れてください
for i = 1:length(str)
file_name = str(i).name; % 名前を抽出
datas = load(str(i).name); % データをロード
excel_name = split(file_name,'.mat'); % .matより前を抽出
excel_name = join(excel_name,txt); % .xlsxをつける
disp(excel_name); % 確認のため名前を表示
end
참고 항목
카테고리
Help Center 및 File Exchange에서 スプレッドシート에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!