【发布时间】:2016-03-05 20:21:19
【问题描述】:
我有一个代码可以做到这一点:
A = [2;3;4;5;6;7];
b = 2;
B(10).b = zeros(6,1);
for i = 1:10
C = A;
B(i).b = C.*(b^i);
if i>1
if B(i).b(1,1)-B(i-1).b(1,1)>50
C(7) = b;
end
end
end
问题在于,在每次迭代中,C 矩阵都被矩阵 A 中的值替换。这是我的代码的简化版本,但本质就在这里,代码应该做到这一点,如果条件是遇到,将另一行添加到矩阵 C 并继续使用矩阵 C 中的该行执行代码。可以这样做吗?我非常感谢您的想法。谢谢。
【问题讨论】:
-
我不明白你的意思,请解释一下,
-
起点是C矩阵,它是进行计算的矩阵。完成一些计算后,将比较是否满足标准。如果该陈述为真,则向 C 矩阵添加一行。问题是,在这段代码中,由于行 C = A,在添加行并开始另一次迭代后,当加载 C 矩阵的起始值时,同一行被删除。我需要能够将行添加到矩阵 C 并继续使用添加的行执行计算。我希望现在更清楚了,@Rashid
-
那你为什么不在循环外设置
C=A,在第一个for之前,不就解决问题了吗? -
因为需要在该矩阵上进行计算,并且它(C 矩阵)在完整代码中是可变的,所以在每次迭代完成并且
ifstatement 不正确后, C矩阵的值必须返回到起点 -
好吧,这很有道理,
C(1:6) = A有帮助吗?因为看起来A和C都是向量,
标签: matlab if-statement for-loop matrix iteration