我有两个不同的行向量P和L.算法对于每次迭代都有不同的P和L,我的代码应该计算两个行向量在同一位置有多少对应的向量,例如,如果P和L是:如何计算Matlab中所有迭代for循环输出的总和?
P=[1,2,2,1,1]
L=[2,2,1,1,1]
答案应该是2。如果我还有一个P和L与例如答案3,我应该能够总结2和3给我5
我的代码计算正确答案对于每次迭代,但我不知道如何对这些答案求和以获得向量P和L在所有迭代中具有的相应总数。
这里是我的代码:
i = 1:numel(P);
j = 1:numel(L);
Valuecompared=(P(i) == 1) & (L(j)==1);
a=0;
for k = 1:numel(Valuecompared)
if Valuecompared(k) == 1
a=a+1;
end
end
我试图sum(a), cumsum(a)
内,并与指数k
并没有外循环,但它只是给我相同的答案不增加的一计算答案“一”“一个”。难道是因为它被覆盖并且每次都不会被保存?
此外,我似乎无法存储算法运行时的“a”的值我可以显示它,但如果我有100个迭代将不方便,我如何计算所有迭代的总和答案和将总和存储在一个变量中,如Atotal
?
你怀疑是对的,它每次都被覆盖。看到https://ch.mathworks.com/matlabcentral/answers/76783-how-do-i-stoop-overwriting-the-variable-in-a-for-loop无论如何,这似乎是一个问题,你不首先需要一个循环。 P和L总是一样的长度吗? –
@LeanderMoesinger是P和L总是相同的长度。 – user3052793
@LeanderMoesinger我实际上遇到了类似的情况,但我仍然无法获得总和。变量值比较不断变化,这很好,但我想能够总结所有的答案,因为我不能手动完成。 – user3052793