如何用两个变量计算总和?

时间:2016-10-09 12:07:23

标签: matlab

我试图用两个变量表达一个函数,例如:

Fuction

其中S(i,j)是一个矩阵,j=1:100i=1:50

分母部分很容易

for j=1:100
    M(j,1) = sum(S(j,:));
end

我的问题是:在尝试在循环中包含i并获得M(i)时,我感到困惑。

1 个答案:

答案 0 :(得分:1)

首先,在matlab中你不需要循环来获得分母的总和。

sum()可以获得您希望求和的维度作为第二个输入参数。其次,为了得到另一个表达式,你只需要在矩阵中为乘法创建一个临时矩阵,然后乘以元素。让我们称之为J:

J = repmat(1:50,[100 1]);

M = sum(J.*S,2)./sum(S,2);

当然你可以保存内存,而不是将J保存到内存中:

M = sum(repmat(1:50,[100 1]).*S,2)./sum(S,2);