MATLAB: How to Save the outputs of the for loop

forloop

I have this code:
x=1:10;
for i=1:length(x);
y=rand(i)
end
which is doing what I want to, but it's not saving the answers in my workspace, so I tried this:
x=1:10;
for i=1:length(x);
y(i)=rand(i)
end
But that comes out with an error that says, "In an assignment A(:) = B, the number of elements in A and B must be the same."
Thanks for the help..

Best Answer

rand(i) is going to create a different sized matrix for each iteration, namely a square matrix of size i x i. That's why you are getting the error. If this is really what you want, then you can use cell arrays. E.g.,
y{i} = rand(i);
If you are just trying to generate a single random number for each iteration, then
y(i) = rand;
Or in the latter case you could just get rid of the loop entirely with:
y = rand(size(x));