Read data from matlab struct and merge
조회 수: 5 (최근 30일)
이전 댓글 표시
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
Love Matlab
2020년 6월 29일
편집: Love Matlab
2020년 6월 29일
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?
답변 (1개)
Love Matlab
2020년 6월 29일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!