簡體   English   中英

MATLAB:為什么這種求和不能正常工作?

[英]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變量,但是此函數在第一次計算時返回該時刻。 它似乎根本不做添加。

可能是一個愚蠢的錯誤,但我真的很困惑。 有什么建議么?

Imuint8類型還是類似的小范圍類型? 嘗試將這一行放在循環之前:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM