Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

Possibility to access/use whole structures

2 visualizzazioni (ultimi 30 giorni)
loes7815
loes7815 il 22 Feb 2016
Chiuso: MATLAB Answer Bot il 20 Ago 2021
Hi!
I made a structure with;
month(1)
month(2)
month(3) etc.
For example, I want to plot month(1:12).Q how can I do this?

Risposte (1)

Guillaume
Guillaume il 22 Feb 2016
See Access multiple elements of a nonscalar struct array. In your case, assuming that the fields Q are scalar:
plot([month(1:12).Q])
  3 Commenti
Stephen23
Stephen23 il 22 Feb 2016
Modificato: Stephen23 il 22 Feb 2016
Try this link, it does not need a license:
Accessing the elements of a non-scalar structure is easy. Merging unequal-length vectors into one array is not so easy, and essentially the best solution is to preallocate an array and use a loop.
Guillaume
Guillaume il 22 Feb 2016
Modificato: Guillaume il 22 Feb 2016
It wasn't clear from your question whether Q was scalar (in which case you'd want a single plot for all the months) or a vector (in which case you'd want a plot per month).
In the latter case, the easiest is probably:
figure;
hold on;
arrayfun(@(m) plot(m.Q, m.Z), month);
Another option is to stuff the Q and Z in a single cell array and use comma separated list expansion to input arguments:
figure;
QZ = {month.Q; month.Z};
plot(QZ{:}); %Q and Z of each month must be the same size (or scalar)

Questa domanda è chiusa.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by