Save loop data to a matrix
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Muhamad Bunaiya
2018-4-5
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
采纳的回答
Guillaume
2016-3-2
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!