Hello, please I have multiple .mat files in a folder. Each one is a matlab struct called T and each T contains contains 2 files, p and s. 1. I want to load all the .mat files into matlab workspace, extract and concatenate only the second columns of all p in each of the files into a single matrix called M. 2. Extract and concatenate or merge the second row of all the s of all the files into a matrix called G.

4 commentaires

Love Matlab
Love Matlab le 29 Juin 2020
what are the fields of T? Can you not just read all of the files from the folder in a for loop?
Curious Mind
Curious Mind le 29 Juin 2020
A loop will also be good. I am not supper great with matlab. Any suggestions or code will be helpful. T contains p which is 100*2 double and s is 20*1 double
Love Matlab
Love Matlab le 29 Juin 2020
Modifié(e) : Love Matlab le 29 Juin 2020
what do you get when you do : load('FILE.mat') ? when you load each .mat file are you getting a structure or just a N x M matrix?
Curious Mind
Curious Mind le 29 Juin 2020
It comes out as a structure. Within the structure is a p and s

Connectez-vous pour commenter.

Réponses (1)

Love Matlab
Love Matlab le 29 Juin 2020
Try this. I am still confused about what you exactly what to extract. The cells P, and S after the for loop should contain all P and S data.
%% Select Folder with .mat files
folder = uigetdir(pwd) ; % select folder with images
files = dir(fullfile(folder,'*.mat')); %create structure with folder data
S = cell(1,length(files)); %create empty storage cells
P = cell(1,length(files));
for i = 1:length(files)
name = files(i).name ; %filename
x = load(name); %load.mat file
P{1,i} = [x.p]; %save all p data
S{1,i} = [x.s]; %save all s data
end
allP = cell2mat(P); %change to matrix
M = allP(2:2:end); %extract every 2nd variable (second column)
allS = cell2mat(S); %change to matrix
G = allS(2,:); %extract only the second row

Catégories

En savoir plus sur File Operations dans Centre d'aide et File Exchange

Produits

Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by