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 Commenti

Is it necessary to save the file? (Might be for any computation after the extraction, I presume)
I actually not sure how to extract directly to workspace without saving to a variable and loading it.
It is, as the answers below show

Accedi per commentare.

 Risposta accettata

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 Commenti

Samy Alkhayat
Samy Alkhayat il 15 Ago 2022
Modificato: Samy Alkhayat il 15 Ago 2022
Works! Thank you!
@Stephen23 any way to put the fields inside "B" into the workspace directly?

Accedi per commentare.

Più risposte (1)

Matt J
Matt J il 14 Ago 2022
Modificato: Matt J il 14 Ago 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 Commento

@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!

Accedi per commentare.

Categorie

Scopri di più su Scope Variables and Generate Names in Centro assistenza e File Exchange

Prodotti

Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by