MATLAB:为什么这个求和不能正常工作?

时间:2009-10-25 22:04:00

标签: matlab sum

我正在尝试在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变量,但此函数在第一次计算时返回。它似乎根本没有添加。

可能是一个愚蠢的错误,但我真的很困惑。有什么建议吗?

2 个答案:

答案 0 :(得分:6)

Im类型是 uint8 还是某种类似的小范围?尝试在循环之前放置这一行:

Im = double(Im);

顺便说一句,你可以在一行中重写你的代码:

moment = sum(sum( ((1:rows)'.^q * (1:cols).^p) .* double(Im) ));

答案 1 :(得分:0)

moment = moment + ...行放置一个断点,看看变量“时刻”是否正在增加。

我不确定你为什么在for语句中使用逗号。它不应该有影响,我不认为,但这是不必要的。