MATLAB Answers

Sam
0

List comprehension-like function in assigning values in nested structures

Asked by Sam
on 9 Oct 2019
Latest activity Answered by meghannmarie on 9 Oct 2019
Hi everyone,
I am coming from writing in Python and am very used to thinking in list comprehensions to form arrays/lists.
Specifically, in MATLAB I'd like to have a more comprehensive version of the following code, especially if the length of the data structure gets larger.
Suppose I have a data structure:
data(1).h = 5;
data(2).h = 4;
Now, I'd like to have all 'h' elements in one array like this:
h(1:2) = [data(1).h data(2).h]
As you see, I am now writing out the entire list, which will get very unwieldy when dealing with structures that go up to data(i) with i very large.
Does anyone have a suggestion how to do this "MATLAB-style", without using a for-loop?
Thanks in advance.

  0 Comments

Sign in to comment.

Tags

2 Answers

Answer by meghannmarie on 9 Oct 2019
 Accepted Answer

Try this:
h = [data.h];

  0 Comments

Sign in to comment.


Answer by Daniel M
on 9 Oct 2019

You'll find the answer in this article on comma-separated lists, specifically with the deal() function. comma-separated lists

  0 Comments

Sign in to comment.