Save loop data to a matrix
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Harshil Patel
am 2 Mär. 2016
Kommentiert: Muhamad Bunaiya
am 5 Apr. 2018
Hello,
It would be a great help if someone could suggest a way to save data from the loop in a matrix. I am using the following code.
p = [1,2,3;4,5,6];
for i = 1:3
x = p(1,i);
y = p(2,i);
u1 = [x*y x/y 2*x];
u2 = [y/x x*y y/2];
end
For each iteration of the loop, the values of u1 and u2 will change. Now, I want to store this u1 and u2 values in matrix U, such that at the end of the loop U will be:
U =
u1 %from i = 1
u2 %from i = 1
u1 %from i = 2
u2 %from i = 2
u1 %from i = 3
u2 %from i = 3
I have searched through numerous threads on similar topics but haven't found a satisfactory answer. Could someone please help me with this.
Thanking You,
Harshil
1 Kommentar
Muhamad Bunaiya
am 5 Apr. 2018
xt=[1 2 3 4 5 6 7 8 9 10 11] for m=1:25
Output supposely xt1 = [1 2 3 4 5 6 7 8 9 10 11] xt2 =[1 2 3 4 5 6 7 8 9 10 11] . . . . . . . xt25 =[1 2 3 4 5 6 7 8 9 10 11] What should i do to get this output
Akzeptierte Antwort
Guillaume
am 2 Mär. 2016
To do exactly what you asked:
p = [1,2,3;4,5,6];
U = zeros(size(p, 2)*2, 3);
for i = 1:size(p, 2) %don't use hardcoded constants when you can just query the size
x = p(1,i);
y = p(2,i);
U(2*i-1, :) = [x*y x/y 2*x];
U(2*i, :) = [y/x x*y y/2];
end
However, I don't think interleaving your u1 and u2 is a good idea. It makes it more difficult to index. Instead, I would put u1 and u2 in the same row:
p = [1,2,3;4,5,6];
U = zeros(size(p, 2), 6);
for i = 1:size(p, 2) %don't use hardcoded constants when you can just query the size
x = p(1,i);
y = p(2,i);
U(i, 1:3) = [x*y x/y 2*x];
U(i, 4:6) = [y/x x*y y/2];
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!