Accessing data in 1x2 structure array
17 views (last 30 days)
Show older comments
I'm trying to simply plot the X and the Y data from the data set given to me (see attached image) but I don't seem to be seeing the full data set when I do. For example, I load in the x and y data and plot
x=data.X
y=data.Y
imagesc(x) etc etc etc
Whats confusing me is - the X data is originally in a 1x2 structure so when I load in the data like I did above, what exactly am I loading in? Am I loading in the full 1x2 structure or only the first row of the X data (from attached image). The reason I ask is because the image being plotted is not what I expected.
I hope this makes sense and would really appreciate any help. Thanks in advance
1 Comment
Accepted Answer
Adam
on 9 Jun 2015
x = data.X
is just giving you the equivalent of
x = data(1).X
and ignoring the 2nd element of the data array.
What are you trying to plot though with imagesc? You effectively have two 111 x 101 matrices in data.X. You can pass either one of them to imagesc, but not both at the same time.
You can plot one as an alpha overlay on the other if you wish, but I don't know if that is what you are aiming for.
2 Comments
Guillaume
on 9 Jun 2015
Note that the behaviour of struct.field, when struct is an array can be a bit confusing if you don't know what is going on behind the scene.
When you write struct.field, the structure array is expanded into a comma separated list struct(1).field, struct(2).field, etc.. Similar to the output list of a function, each element of the list can be assigned to a single variable.
Thus, you could do:
[x1, x2] = data.X;
which would be equivalent to
x1 = data(1).X;
x2 = data(2).X;
More Answers (0)
See Also
Categories
Find more on Get Started with MATLAB 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!