我试图用两个变量表达一个函数,例如:
其中S(i,j)
是一个矩阵,j=1:100
,i=1:50
。
分母部分很容易
for j=1:100
M(j,1) = sum(S(j,:));
end
我的问题是:在尝试在循环中包含i
并获得M(i)
时,我感到困惑。
答案 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);