我在Stackfriends的帮助下更正了代码,如果其他人有类似的堆栈,请查看粗体部分。 算术上,我应该采取w = 1,为什么我w = 2?非常感谢,
X=linspace(0,10,6);
Y=linspace(0,20,5);
Xstar=0;
Ystar=0;
**p=0;**
for i=1:length(X)-1
for j=1:length(Y)-1
if (Ystar==Y(j)) && (Xstar==X(i))
w=1;
else
w=2;
end
**p(i,j)=w**
end
end
答案 0 :(得分:2)
只是一个猜测,但我认为你想要向后循环数组。您应该使用调试器并逐步查看它。
试试这个:
...
for i=length(X):-1:1
for j=length(Y):-1:1
if (Ystar==Y(j)) && (Xstar==X(i))
w=1;
else
w=2;
end
end
end
以下是解决问题的方法。
(我希望这些说明仍然有效,我有一个相当旧的MATLAB版本)
答案 1 :(得分:1)
赋值w=1;
仅在第一个循环上完成;每次之后,X(i)
或Y(j)
都不等于0,因此会显示w=2;
。循环完成后,您将看到的只是w=2
,因为您没有存储所有迭代的值。