For-loop using only last iteration
Ältere Kommentare anzeigen
My code is as follows:
clearvars;
zeros(1,10); %Create a row vector with 10 zeros
for i=1:1:10
A = [i.^2];
C = zeros(1,10) + A;
end
disp(C)
Now, what I originally wanted to do was add the square of each iteration on the respective i-th column of the zeros(1,10) vector, instead I get i = 10 for every position and I don't understand why it doesn't do it for each iteration but only for the last one.
3 Kommentare
What are you trying to do ? Add the squares of the numbers from 1 to 10 ?
x = 1:10;
s = sum(x.^2)
Or do you want
x = 1:10;
s = cumsum(x.^2)
Giuliano
am 25 Okt. 2022
x = (1:10).^2
Akzeptierte Antwort
Weitere Antworten (1)
Inside the loop
C = zeros(1,10) + A;
the function "zeros(1,10)" is assigning zeros to the entire C vector, then adding A.
Also, the command before the for loop "zeros(1,10)" does not save the 10 element vector.
I think what you intended is something like:
C = zeros(1,10); %Create a row vector with 10 zeros
for i=1:1:10
A = [i.^2];
C(i) = A;
end
3 Kommentare
Giuliano
am 25 Okt. 2022
indexing instructs the program to put the value of "A" in the 'ith" position in the C array.
So inside the for loop, when i=1, A is computed as 1^2 = 1, and put in location C(1).
On the next ittereation of the loop, i=2, A=2^2 = 4 and is stored in position 2 in the C vector (i.e. C(2) ).
When i=3, A=3^2 = 9 and is stored in C(3), etc.
So, the way you had the loop coded, C was assigned a value of zeros(1,10), or ten zeros, then it added A to the vector, which adds A to all 10 elements of C.
Each itteration of the loop assigned ten zeros to C, then added A, so only the last itteration retained any values, and they were 10 copies of A.
so in the first itteration of the loop, i=1, A=1 and C = 1 1 1 1 1 1 1 1 1 1
In the second itteration of the loop, i=2, A=4, and C = 4 4 4 4 4 4 4 4 4 4,
etc.
Giuliano
am 25 Okt. 2022
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!