Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试在 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)) 为每次迭代计算并添加到矩变量中,但此函数在第一次计算时返回时刻。它似乎根本没有添加。
可能是一个愚蠢的错误,但我真的很困惑。有什么建议么?
会不会Im是uint8类型或类似的小范围类型?尝试将此行放在循环之前:
Im
Im = double(Im);
顺便说一句,您可以在一行中重写您的代码:
moment = sum(sum( ((1:rows)'.^q * (1:cols).^p) .* double(Im) ));
在行上放一个断点moment = moment + ...,看看变量“moment”是否正在增加。
moment = moment + ...
我不确定你为什么在 for 语句中使用逗号。它不应该有影响,我不认为,但它是不必要的。