saving multiple vectors with different lengths in one matrix

Hi everyone,
For a research project at my university I need to make histograms of several runs of an ecological model.
On my 'main' matix M I keep track of trees, on another matrix 'M3' I keep track of their age.Since there is some stochastic elementes in the model I need to run it for 25 repetitions, I do that using 'for rep = 1:25', then my code, then 'end'.
Now I want to save the age of the trees each repetition in order to make an average histogram of the tree-age for the entire run (25 repetitions), but I can't save it in a matrix because of their different lengths. How can I cicumvent this problem?
Thanks! Marcus Westerman

 Akzeptierte Antwort

Matt Fig
Matt Fig am 17 Mai 2011
You can use cell arrays, or pad with zeros. For example:
v1 = [2 3 4 5];
v2 = [2 3 4 5 6 7];
% Make padded array. Could use rows or columns...
M = zeros(2,6);
M(1,1:length(v1)) = v1;
M(2,1:length(v2)) = v2;
% Or use a cell array.
M2{1} = v1;
M2{2} = v2;

3 Kommentare

The above cell array example also worked well for me to save my data from a for loop. However, I need to plot the cell array data with inpolygon function, I drew a rectangle, but I am not sure how to use the cell array and inpolygon function together. I am testing whether certain values are in the rectangle or not.
plot(M2{1,1},M2{1,2})
hold on
plot(M3{1,1},M3{1,2})
%
For anyone interested you can access elements like this:
M2{1}(1), M2{1}(2) , etc.
The first solution is awesome. Thanks.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by