acces data in struct
Ältere Kommentare anzeigen
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!
Akzeptierte Antwort
Weitere Antworten (2)
Mario Chiappelli
am 19 Jul. 2019
Bearbeitet: Mario Chiappelli
am 19 Jul. 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 Kommentare
Peter Jarosi
am 19 Jul. 2019
Bearbeitet: Peter Jarosi
am 19 Jul. 2019
I think your code won't work, because, for instance you should use Str.(variableName) syntax instead of Str.variableName (and other problems).
Mario Chiappelli
am 19 Jul. 2019
What are these "other problems", you did exactly what I did but you put the parantheses around the variables.
Peter Jarosi
am 19 Jul. 2019
Bearbeitet: Peter Jarosi
am 19 Jul. 2019
I didn't see your code when I was writing mine. You were just faster than me in order to submit it, and less accurate, and still having syntax errors. Test it first, before submit!
Peter Jarosi
am 19 Jul. 2019
It's a nice trick:
for str = {'A','B','C'}
but in this case doesn't work properly, because you will get 1x1 cells instead of strings. So you need one more step in order to convert them to strings, otherwise you won't be able to use them inside the parenthesis syntax.
Peter Jarosi
am 19 Jul. 2019
Good job! I've given you a vote for it.
One little thing is left. Change "1" to '1'
Mario Chiappelli
am 19 Jul. 2019
*thumbs up emoji
Rica
am 19 Jul. 2019
0 Stimmen
Kategorien
Mehr zu Structures finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!