load multiple .mat file and do same calculation on each file

1 回表示 (過去 30 日間)
MM Asim
MM Asim 2017 年 5 月 6 日
回答済み: Navdeep Goel 2019 年 9 月 29 日
i have 100 .mat file name "A00001-A00100". i want to create loop that do calculation (written in code) one by one on each file but my code just do calculation on first file (A00001.mat) only. please help!,
% loop to do same calculation on each file,
for i=1:100
load(['A000' num2str(i,'%02d') '.mat' ]);
%calculations
N=9000;
gqrs('A00001',N);
ann=rdann('A00001','qrs',[],N);
[tm,sig]=rdsamp('A00001',[],N);
end

採用された回答

mizuki
mizuki 2017 年 5 月 6 日
Your code works only for A00001 because you set 'A00001' as input arguments for GQRS, RDANN, RDSAMP. Change the numbers with index i.
for i=1:5
str = 'A000' num2str(i,'%02d');
filename = [str, '.mat']
load(str);
% calculations
N = 9000;
gqrs(str, N);
ann = rdann(str, 'qrs', [], N);
[tm,sig] = rdsamp(str, [], N);
end
Also, if you breakdown the problem, you can easily find which part you need to change.
  1. Made the maximum loop index smaller from 100 to 5.
  2. To check the mat-file was loaded correctly, created the variable, filename.
  3. Since the first loading part worked correctly, checked the second part.
  1 件のコメント
MM Asim
MM Asim 2017 年 5 月 8 日
Yes it work, code that you have provide work absolutely great after little modification in second line and also your recommendations to solve the problem are helpful for me.
str = ['A000' num2str(i,'%02d')]; % 2rd line with some change.
thanks a lot Mr. Mizuki

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

その他の回答 (1 件)

Navdeep Goel
Navdeep Goel 2019 年 9 月 29 日
for i=1:5
str = 'A000' num2str(i,'%02d');
filename = [str, '.mat']
load(str);
% calculations
N = 9000;
gqrs(str, N);
ann = rdann(str, 'qrs', [], N);
[tm,sig] = rdsamp(str, [], N);
end
In the above code, load(str) should be load(filename)

カテゴリ

Help Center および File ExchangeWhos についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by