how to read multiple mat files and and extract data from those

I have a multiple .mat files (like 100 file) I need to load and extract specific data from those files. I.e to extract the row and columns so can anyone please help me out in this.

2 Comments

mat = dir('*.mat');
for q = 1:length(mat)
load(mat(q).name);
end
However, you are mentioning you want to extract specific data from those files. As per my knowledge, may be we need to know what is the name of variable in the mat file first.
May be you can attach few of your mat file, and further elaborate it. So may be some of expert here can try it out.
hello, has I mentioned above I have these type .mat files (like 150 files). i have to load all those files and have to extract column 11 in this all mat files and save it in one .mat file
i have attached few files below

Sign in to comment.

 Accepted Answer

Hi Suhas Goravale Siddaramu,
I have tried out your attached mat. file. I guess you are saying row 11 instead of column 11. In your mat.file, there is variable Pre-cell, it has 3 columns and 14 rows.
mat = dir('*.mat');
for q = 1:length(mat)
load(mat(q).name);
data(q,:) = Pre_cell(11,:)
end
with the additional line of code data(q,:) = Pre_cell(11,:), it will load all the row 11 of mat file into data.
Should you have any doubt, you may ask.

4 Comments

Hello Freind, Has i asked above to extract data from files. We get 3 columns so that is my x, y, z-axis I need to plot those in 3D so how can I plot those
You may consider
plot3(data(:,1),data(:,2),data(:,3));
grid on
box on
Will it help you?
Hello, I have another doubt
I have made a loop which loads all mat files in a folder then I have applied multiple functions for all the mat files and even the operation is going without errors and the last thing is that I have to save one loop value to one file.
like for 1 loop it should create 1 file
for example if 200 loops it should create with 200 files with different names.
so how can i do it

Sign in to comment.

More Answers (1)

Whenever you wish to load all files, just use dir.
F=dir('*.mat')
for i =1:length(F)
load(F(i).name)
end

Community Treasure Hunt

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

Start Hunting!