Matlab 如何计算两个变量的和?
我试图用两个变量来表示函数,例如: 其中,Matlab 如何计算两个变量的和?,matlab,Matlab,我试图用两个变量来表示函数,例如: 其中,S(i,j)是一个矩阵,j=1:100,i=1:50 分母部分很简单 for j=1:100 M(j,1) = sum(S(j,:)); end 我的问题是:当我试图在循环中包含I并获得M(I)时,我感到困惑。首先,在matlab中,你不需要循环来获得分母的和 sum()可以获取希望作为第二个输入参数求和的维度。其次,为了得到另一个表达式,您只需为矩阵中的乘法创建一个临时矩阵,然后按元素进行乘法。我们称之为J: J = repmat(1:50
S(i,j)
是一个矩阵,j=1:100
,i=1:50
分母部分很简单
for j=1:100
M(j,1) = sum(S(j,:));
end
我的问题是:当我试图在循环中包含
I
并获得M(I)
时,我感到困惑。首先,在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);
只是一个小小的建议:尽量不要使用Matlab中的变量i和j来引用索引或其他东西。它们是为复数的虚部保留的。请参阅:考虑使用<代码> BSXFung,而不是<代码> RePATAT < /代码>。代码>M=sum(bsxfun(@times,(1:50),S),2)。/sum(S,2)众所周知,代码>
bsxfun
的性能优于基于repmat
的方法: