how automatically label multiple outputs in the loop?

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

Antworten (2)

Dr. Seis
Dr. Seis am 20 Mai 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 Kommentare

I don't know how many elements in x... actually this is my another problem...
Dr. Seis
Dr. Seis am 20 Mai 2013
Bearbeitet: Dr. Seis am 20 Mai 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.
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);
Iain
Iain am 20 Mai 2013
You could also do the loop in the opposite direction. High indices to low indices.

Melden Sie sich an, um zu kommentieren.

José-Luis
José-Luis am 20 Mai 2013
Bearbeitet: José-Luis am 20 Mai 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.

Kategorien

Gefragt:

am 20 Mai 2013

Community Treasure Hunt

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

Start Hunting!

Translated by