Accessing data in 1x2 structure array
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tadgh Cullen
el 9 de Jun. de 2015
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 comentario
Respuesta aceptada
Adam
el 9 de Jun. de 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 comentarios
Guillaume
el 9 de Jun. de 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;
Más respuestas (0)
Ver también
Categorías
Más información sobre Get Started with MATLAB en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!