acces data in struct
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Rica
le 19 Juil 2019
Commenté : Mario Chiappelli
le 19 Juil 2019
Hi!
I have a struct Str. the element of the structure arle A, B, C,.... all of the are arrays with length 2000. I want to have onle the element from 500:1500 without writing
Str.A1=Str.A(500:1500) for every struct element.
is there an easy way to achieve this goal?
thank you!
0 commentaires
Réponse acceptée
Peter Jarosi
le 19 Juil 2019
Modifié(e) : Peter Jarosi
le 19 Juil 2019
You can use for loop indexing elements of your structure:
myElements = fieldnames(Str);
% or you can list your elements
% myElements = {'A', 'B', 'C'};
for x = 1 : length(myElements)
e1 = myElements{x};
e2 = strcat(e1, '1');
Str.(e1)=Str.(e2)(500:1500);
end
Please, let me know if it works for you
2 commentaires
Peter Jarosi
le 19 Juil 2019
Modifié(e) : Peter Jarosi
le 19 Juil 2019
You're very welcome!
You are right, if you want to overwrite your existing instances. In this case strcat() is even unnecessary:
myElements = fieldnames(Str);
% or you can list your elements
% myElements = {'A', 'B', 'C'};
for x = 1 : length(myElements)
e1 = myElements{x};
Str.(e1)=Str.(e1)(500:1500);
end
but in your question you wrote:
Str.A1=Str.A(500:1500);
that's why I thought that you want to create new elements of your structure in order to save old ones.
Plus de réponses (2)
Mario Chiappelli
le 19 Juil 2019
Modifié(e) : Mario Chiappelli
le 19 Juil 2019
I would loop through each A,B,C... Other languages call this a for each loop.
for str = {'A','B','C'}
variableName = strcat(str{1},'1');
Str.(variableName) = Str.(str{1})(500:1500);
end
Note: Instead of looping through numbers where each iteration is stored in the for statement variable "i" (or whatever you decide to call it), you are looping through each letter and the for statement variable in this case is "str".
6 commentaires
Peter Jarosi
le 19 Juil 2019
Good job! I've given you a vote for it.
One little thing is left. Change "1" to '1'
Voir également
Catégories
En savoir plus sur Structures dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!