【发布时间】:2019-02-11 05:50:40
【问题描述】:
给定一个向量a,我想计算a(k)+a(j) 的总和,其中k 不等于j,分别为每个k。我编写了应该执行此操作的代码,但由于输出与我的预期不同,我意识到它无法正常工作。
a=[1 2 3 4]
sumj=0;
b=0;
for k=1:4
for j=1:4
if j~=k
sumj = a(k)+ a(j)
end
end
b=b+sumj
end
在外循环的第 1st 迭代中,当k=1 时,我希望控制台中有这些值:
sumj=a(k)+a(j)=a(1)+a(2)=3
sumj=a(k)+a(j)=a(1)+a(3)=4
sumj=a(k)+a(j)=a(1)+a(4)=5
b=3+4+5=12
同样,在第 2nd 次迭代中,当k=2:
sumj=3
sumj=5
sumj=6
b=3+5+6=14
在第三:
sumj=4
sumj=5
sumj=7
b=4+5+7=16
在第4:
sumj=5
sumj=6
sumj=7
b=5+6+7=18
但我得到的不是上面的:
sumj=3,sumj=4,sumj=5,b=5 (b shouldn't be 5,it should be 12)
sumj=3,sumj=5,sumj=6,b=5+6=11 (b shouldn't be 11,it should be 14)
sumj=4,sumj=5,sumj=7,b=5+6+7=18 (b shouldn't be 18,it should be 16)
sumj=5,sumj=6,sumj=7,b=5+6+7+7=25 (b shouldn't be 25,it should be 18)
我应该如何修改代码以获得我想要的结果?
【问题讨论】:
-
欢迎来到 StackOverflow!您的问题格式错误,很难理解发生了什么。如果你的帖子是正确的formatted,你可以更快地得到答案。 这次我已经为你修复了它,但下次请尽量让你的帖子尽可能清晰易读。另请参阅How to Ask。