MATLAB Answers

How to process multiple dot mat file using for loop

1 ビュー (過去 30 日間)
Yared Daniel
Yared Daniel 2021 年 5 月 24 日
コメント済み: Yared Daniel 2021 年 5 月 24 日
Hello every one, please help me in solving this issue
I have thousands of mat files as shown in figure for sample. Each mat file contains a variable called ‘val’ which is 2 by 19000 matrices. What I need is to extract the first raw of ‘val’ of each dot mat file and save it by naming sequentially like “x1, x2, x3……..” Using for loop.
I have done for a single file successfully by the following algorithm
>> clear all
>> load('dist (1).mat')
>> x = val(1,:);
>> save('x1.mat', 'x')
I have attached some of the dot mat files
Thanks so much in advance for your help

回答 (1 件)

David Fletcher
David Fletcher 2021 年 5 月 24 日
Wouldn't it be better to extract what you want into a single matrix and then just save the one matrix with all the data rather than having thousands of separate files? Having said that, a basic framework for doing what you want is:
clear
numberOfFiles= %enter number of files;
for iter=1:numberOfFiles
fName=sprintf('dist (%d).mat',iter);
x=load(fName);
x=x.val(1,:);
fName=sprintf('x%d.mat',iter);
save(fName, 'x');
end
  5 件のコメント
Yared Daniel
Yared Daniel 2021 年 5 月 24 日
I sincerely appreciate your help thank you so much

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

Community Treasure Hunt

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

Start Hunting!

Translated by