how to export multiple .mat files to csv using the automation script?

i have multiple .mat files, each mat file consits of 2 datasets (Input and Output). i was successful to combine Inputs and Outputs in a single .mat file and convert it to .csv file.
>>load('mat_file1.mat');
%2 files are loaded in workspace (Input.mat 100x10 and Output.mat 100x10)
>>I/O_file1 = [Input Outpt];
%single MAT file created (I/O_file1.mat 100x20)
>>xlswrite('I/O_file1.csv', mat_file1.mat);
%CSV file created
But there are several MAT files in a single folder such as ( mat_file1.mat, mat_file2.mat, mat_file3.mat, mat_file4.mat, mat_file5.mat .....)
Now i need an Automation script so that i can convert all the MAT files present in the folder at once.

 採用された回答

Rik
Rik 2021 年 8 月 12 日
編集済み: Rik 2021 年 8 月 12 日

0 投票

Load to a struct:
base=sprintf('mat_file%d',1);
S=load([base '.mat']);
data=[S.([base '_Inputs']) S.([base '_Outputs'])];
xlswrite([base '.csv'],data);

4 件のコメント

Sandeep GNV
Sandeep GNV 2021 年 8 月 17 日
thanks for the above solution, it worked. but i have a another problem following to that, i need to add a Row with the Column Names before converting it to the .csv file.
Ola Fekry
Ola Fekry 2022 年 2 月 19 日
Plz I have RF signals dataset of 220000 .mat files for 11classes I want to put them in a CSV file with labels
Rik
Rik 2022 年 2 月 19 日
Ok, good luck. If you have any questions when doing that: have a read here and here.
Ola Fekry
Ola Fekry 2022 年 2 月 21 日
Ok thanks

サインインしてコメントする。

その他の回答 (1 件)

Sandeep GNV
Sandeep GNV 2021 年 8 月 18 日

0 投票

i have set of MAT files ina folder so i wrote an automation code to convert the set of MAT files in folder to CSV files all at a time. each MAT file consits of 2 datasets (Inputs and Outputs).
for i = 1:4; for j = 0:50:100
base=sprintf('Heating_Data1_0C_RB%d_Comb%d',j,i);
S=load([base '.mat']);
data=[S.([base '_Inputs']) S.([base '_Outputs'])];
xlswrite([base '.csv'],data);
end
end
so this merge the two MAT files(Inputs &Outputs) into a single MAT file and covnerts it to CSV file. but here in the excel sheet you see only the numeric data, so now i need to insert a Row on the top with the column headings.

1 件のコメント

Rik
Rik 2021 年 8 月 18 日
You can extend the data variable. You probably need to convert it to a cell array (if it isn't one yet) with num2cell. Then you can trivially add the header.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeFile Operations についてさらに検索

タグ

質問済み:

2021 年 8 月 12 日

コメント済み:

2022 年 2 月 21 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by