# how automatically label multiple outputs in the loop?

40 views (last 30 days)
frwmetric on 20 May 2013
hi how automatically label multiple outputs in the loop? I do not know it is possible or not... may be it is very basic...
I mean basically
for i=1:3
x=i^2
end
here the outputs
x =
1
x =
4
x =
9
I want to label those x st
x(1)=1
x(2)=4
x(3)=9

Dr. Seis on 20 May 2013
If you know how many elements in x there will be (3 in your example), then it is best to initialize the output:
x = zeros(3,1); % 3 rows and 1 column of zeros
for i = 1 : 3
x(i) = i^2;
end

Show 1 older comment
Dr. Seis on 20 May 2013
You do not "need" to initialize... Matlab might complain that the size of x appears to increase during each loop, but it should still work without initializing. If x gets very large, then you can see significant speed-up by initializing.
Image Analyst on 20 May 2013
You can initialize to the max you ever expect to see, and then truncate later once you know the number of elements you actually need:
% Preallocate space for as many as 3 million elements.
x = zeros(3000000,1); % 3 million rows and 1 column of zeros
for i = 1 : 2000000 % 2 million.
x(i) = i^2;
end
% Truncate to known length of 2 million elements.
x = x(1:2000000);
Iain on 20 May 2013
You could also do the loop in the opposite direction. High indices to low indices.

José-Luis on 20 May 2013
Edited: José-Luis on 20 May 2013
x = 1:3; %Creating a vector of values
your_result = x.^2; %squaring element by element
x(1)
x(2)
x(3)
I would recommend you read the Getting started part of the documentation.