Effacer les filtres
Effacer les filtres

Extract fields from structure

10 vues (au cours des 30 derniers jours)
Samy Alkhayat
Samy Alkhayat le 14 Août 2022
Commenté : Dyuman Joshi le 15 Août 2022
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
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

En savoir plus sur Structures dans Help Center et File Exchange

Tags

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by