I am having 5 .mat files. Each mat file contains 5 parameters. A,B,C,D,E
Now I want to plat a graph which will be considering all mat files.
I want to take C variable which is of a size 200x1 from each mat file, take mean of it for that mat file and then plot it against time.
So at the end I will get a graph with 5 points representing mean of the respective C columns from .mat file.
Can anyone help me to do this?
Here is what I have done till now:
clear all; clc;
myFolder = 'C:\Users\adi\Documents\MATLAB\';
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(myFolder, '*.mat');
matFiles = dir(filePattern);
for k = 1:length(matFiles)
end
This is reading the files from my folder. Now Please help me to analyze them!

 채택된 답변

Thorsten
Thorsten 2015년 5월 26일
편집: Thorsten 2015년 5월 26일

0 개 추천

In the body of your for loop, write
load(matFiles(k).name)
plot(k, mean(C), '.')
if k == 1, hold on, end

댓글 수: 8

Thank you for quick reply. But it's giving me
Subscript indices must either be real positive integers or logicals.
error!
adi kul
adi kul 2015년 5월 26일
what will be the reason?
Thorsten
Thorsten 2015년 5월 26일
My fault. Must be matFiles(k) instead of matFiles(i). I corrected the original post.
Now it's giving
Error using load
Argument must contain a string.
Thorsten
Thorsten 2015년 5월 26일
Sorry, must be matFiles(k).name, as corrected above.
adi kul
adi kul 2015년 5월 26일
편집: adi kul 2015년 5월 26일
I figured it out but now it's giving
Error using load
Unable to read file
'Trial1.mat':
no such file or directory.
The 5 files are Trial1.mat, ....., Trial5.mat
Thorsten
Thorsten 2015년 5월 26일
편집: Thorsten 2015년 5월 26일
Does
>> dir
show you Trial1.mat, Trial2.mat etc? If not, you have to move these files to your current directory, or change your current directory to a location where these files are stored.
If yes, you probably have NO read access to the files. You have to add read permission to your files
Unix/Linux/MacOS:
system('chmod u+r Trial*.mat')
Windows:
system("CACLS Trial*.mat /e /p yourlogin:r")
adi kul
adi kul 2015년 5월 26일
Thanks! I misplaced my directories!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2015년 5월 26일

0 개 추천

This question is asked daily. See the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F Use the code snippets to loop over files. At the center of the loop, call load(), hold on, and plot().

카테고리

도움말 센터File Exchange에서 File Operations에 대해 자세히 알아보기

태그

질문:

2015년 5월 26일

편집:

2015년 5월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by