Result producing 1x5 array instead of 10x5?
Show older comments
Hi all,
I have the following code which I'm expecting to produce a 10x5 array but it's only giving me a 1x5, and I'm not sure why?
n = 10;
result = zeros(n,5);
for k=1:n;
A0=1;P0=29;g=rand;p=rand;B=rand;
result = [A0,P0,g,p,B];
end;
Alternatively, if I write the code this way I get a 10x1 cellular array, each entry of which represents a 1x5 numeric array. This gives me the number of results I want, but not in the format I'm looking for (which, again, is ultimately a 10x5 array). Thanks in advance!
n = 10;
result = cell(n,1);
for k=1:n;
A0=1;P0=29;g=rand;p=rand;B=rand;
result{k} = {A0,P0,g,p,B};
end;
Accepted Answer
More Answers (1)
Rob L
on 4 Jun 2019
0 votes
Your first method overwites the result every loop with a [ 1 x 5 ] array.
You could (among many other solutions) use:
n = 10;
result = zeros(n,5);
for k=1:n
A0=1;P0=29;g=rand;p=rand;B=rand;
result(k,1) = A0;
result(k,2) = P0;
result(k,3) = g;
result(k,4) = p;
result(k,5) = B;
end
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!