How to address multiple subfields of a structure at once?
Show older comments
Hi all,
I have a simple programming question, which might be easy for some of you, but I just can’t find the answer: If I have multiple fields of a structure, how can I address the same variable of multiple subfields at once?
Here is an example:
x(1).a = 10;
x(2).a = 20;
x(3).a = 30;
Now I want a vector of all the a-subfields, like:
result = [10, 20, 30]
I was trying this, but it doesn’t work:
result = x(1:3).a;
Or I want to assign a different value to multiple a-subfields at once. I was trying this, but it doesn’t work:
x(1:3).a = 10;
I know that I can solve this in a for-loop, like:
for i = 1:length(x)
x(i).a = 10;
end
But is there a simpler solution without a loop for this problem?
Thanks!
Accepted Answer
More Answers (2)
Jan
on 13 Oct 2016
[x(1:3).a] = deal(10);
Matthias Stangl
on 13 Oct 2016
0 votes
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!