MATLAB Answers

0

how automatically label multiple outputs in the loop?

Asked by 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

  0 Comments

Sign in to comment.

2 Answers

Answer by 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
Then perform your calculations:
for i = 1 : 3
x(i) = i^2;
end

  4 Comments

Show 1 older comment
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.
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
Then perform your calculations:
for i = 1 : 2000000 % 2 million.
x(i) = i^2;
end
% Truncate to known length of 2 million elements.
x = x(1:2000000);
You could also do the loop in the opposite direction. High indices to low indices.

Sign in to comment.


Answer by José-Luis
on 20 May 2013
Edited by 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.

  0 Comments

Sign in to comment.