필터 지우기
필터 지우기

sorting list of structures in a structure

조회 수: 4 (최근 30일)
University
University 2023년 11월 13일
편집: Stephen23 2023년 11월 14일
I have a list of structures in a structure.
I tried this:
%% Load data
matpath = 'C:\Users\..;
mydata = dir(fullfile(matpath ,'*.mat'));
full_file_names = fullfile(matpath,{mydata.name});
for n = 1:length(mydata)
mydata(n).data = load(full_file_names{n});
active_flow(n) = mydata(n).data;
end
The mydata(n) structure is ordered. To access of the structure I tried "active_flow(n) = mydata(n).data". But my active_flow is NOT longer ordered.
Please how can sort "active_flow" structure. See an attached screenshot of mydata structure.
  댓글 수: 1
Stephen23
Stephen23 2023년 11월 13일
"The mydata(n) structure is ordered... But my active_flow is NOT longer ordered."
There is nothing in the code that you show that changes the order.

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2023년 11월 13일
편집: Stephen23 2023년 11월 14일
It is unclear what the problem is, because you did not explain or show either the "wrong" order nor the "right" order. If you want the filenames in alpha-numeric order then you could DOWNLOAD the function NATSORTFILES:
P = 'C:\Users\..';
S = dir(fullfile(P,'*.mat'));
S = natsortfiles(S); % DOWNLOAD if you want alpha-numeric order of filenames
for n = 1:numel(S)
F = fullfile(S(n).folder,S(n).name);
S(n).data = load(F);
end
active_flow = [S.data] % optional, if all MAT files contain the same variable names
  댓글 수: 4
Stephen23
Stephen23 2023년 11월 13일
"which folder the function suppose to be in?"
It is exactly as with your own files: either in the current directory (simpler) or on the MATLAB Search Path:
University
University 2023년 11월 13일
Thank you Stephen. It has worked.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Downloads에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by