我正在尝试在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变量,但此函数在第一次计算时返回。它似乎根本没有添加。
可能是一个愚蠢的错误,但我真的很困惑。有什么建议吗?
答案 0 :(得分:6)
Im
类型是 uint8 还是某种类似的小范围?尝试在循环之前放置这一行:
Im = double(Im);
顺便说一句,你可以在一行中重写你的代码:
moment = sum(sum( ((1:rows)'.^q * (1:cols).^p) .* double(Im) ));
答案 1 :(得分:0)
在moment = moment + ...
行放置一个断点,看看变量“时刻”是否正在增加。
我不确定你为什么在for语句中使用逗号。它不应该有影响,我不认为,但这是不必要的。