Hello,
I have a structure A that includes 2 structures, B and C. I want to extract from structure "C" , to the workspace, specific fields that start with certain set of letter, i.e I want to extract fields that start wih XX_YY.
I did
S=[A.C(:)]; save('param.mat','-struct','S');
But the file takes forever to load to the workspace.
Thanks in Advance!

3 commentaires

Dyuman Joshi
Dyuman Joshi le 14 Août 2022
Is it necessary to save the file? (Might be for any computation after the extraction, I presume)
Samy Alkhayat
Samy Alkhayat le 15 Août 2022
I actually not sure how to extract directly to workspace without saving to a variable and loading it.
Dyuman Joshi
Dyuman Joshi le 15 Août 2022
It is, as the answers below show

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 15 Août 2022
A.C.XX_YY1 = 5;
A.C.XX_YY2 = 10;
A.C.ZZ = 3;
B = A.C;
F = fieldnames(B);
X = startsWith(F,'XX_YY');
B = rmfield(B,F(~X))
B = struct with fields:
XX_YY1: 5 XX_YY2: 10

2 commentaires

Samy Alkhayat
Samy Alkhayat le 15 Août 2022
Modifié(e) : Samy Alkhayat le 15 Août 2022
Works! Thank you!
@Stephen23 any way to put the fields inside "B" into the workspace directly?

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 14 Août 2022
Modifié(e) : Matt J le 14 Août 2022
S.C.XX_YY1=5;
S.C.XX_YY2=10;
S.C.ZZ=3;
f=fieldnames(S.C);
I=startsWith(f,'XX_YY');
f=string(f(I));
for fI=string(f(I))'
Extraction.(fI)=S.C.(fI);
end
Extraction
Extraction = struct with fields:
XX_YY1: 5 XX_YY2: 10

1 commentaire

Samy Alkhayat
Samy Alkhayat le 15 Août 2022
@Matt J it works except I get the error below:
The logical indices contain a true value outside of the array bounds.
Any advice?
Thanks in advance!

Connectez-vous pour commenter.

Catégories

Produits

Version

R2022a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by