我正在尝试在MATLAB中执行一个非常简单的求和.这是我的代码:
moment = 0;
for y=1:rows,
for x=1:cols,
moment = moment + (x^p * y^q * Im(y,x));
end
end
Run Code Online (Sandbox Code Playgroud)
我希望(x ^ p*y ^ q*Im(y,x))计算每次迭代并添加到矩变量,但此函数返回第一次计算时的时刻.它似乎根本没有添加.
可能是一个愚蠢的错误,但我真的很困惑.有什么建议?
可能Im是uint8类型或类似的小范围类型?尝试在循环之前放置此行:
Im = double(Im);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你可以在一行中重写你的代码:
moment = sum(sum( ((1:rows)'.^q * (1:cols).^p) .* double(Im) ));
Run Code Online (Sandbox Code Playgroud)