[英]MATLAB: Why is this summation not working properly?
我正在嘗試在MATLAB中執行一個非常簡單的求和。 這是我的代碼:
moment = 0;
for y=1:rows,
for x=1:cols,
moment = moment + (x^p * y^q * Im(y,x));
end
end
我想為每個迭代計算(x ^ p * y ^ q * Im(y,x))並將其添加到moment變量,但是此函數在第一次計算時返回該時刻。 它似乎根本不做添加。
可能是一個愚蠢的錯誤,但我真的很困惑。 有什么建議么?
Im
是uint8類型還是類似的小范圍類型? 嘗試將這一行放在循環之前:
Im = double(Im);
順便說一句,您可以在一行中重寫代碼:
moment = sum(sum( ((1:rows)'.^q * (1:cols).^p) .* double(Im) ));
在moment = moment + ...
行上設置一個斷點,然后查看變量“矩”是否正在增加。
我不確定為什么要在for語句中使用逗號。 我不認為這應該沒有效果,但這是不必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.