Read data from matlab struct and merge
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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 comentarios
  Love Matlab
 el 29 de Jun. de 2020
				
      Editada: Love Matlab
 el 29 de Jun. de 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?
Respuestas (1)
  Love Matlab
 el 29 de Jun. de 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
0 comentarios
Ver también
Categorías
				Más información sobre Workspace Variables and MAT Files en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

