Ram
Ram

Reputation: 3

How to edit multiple .mat files in a folder using MATLAB?

I am trying to edit 100 .mat files in a folder with no pattern in their names. Each file contains a matrix of size 100-by-10, and I want to convert them to 10-by-10-by-10. How do I go about this?

Upvotes: 0

Views: 109

Answers (1)

Adriaan
Adriaan

Reputation: 18177

Provided you have a single matrix in each file, and want to overwrite the original matrix:

listing = dir('*.mat'); % finds all .mat files in your pwd
for ii = 1:numel(listing)
    tmp = listing(ii).name;
    s = load(tmp); % load a file
    Fname = fieldnames(s); % get matrix name
    out = reshape(s.(Fname{1}),[10 10 10]); % reshape
    save(tmp,'out') % Save, overwriting original
end

Upvotes: 6

Related Questions