我想在Matlab中总结矩阵的所有元素.如果我有一个名为A的矩阵,那么我可以通过调用来求和所有元素
sum(A(:));
Run Code Online (Sandbox Code Playgroud)
但我想总结从这样的函数返回的元素:
sum(gammaln(A)) % where gammaln is the logarithm of gamma function
Run Code Online (Sandbox Code Playgroud)
当然,我可以分两步完成:
B = gammaln(A);
sum(B(:));
Run Code Online (Sandbox Code Playgroud)
但是在这里我创建了一个B矩阵,我根本不需要它.我也可以这样做:
sum(sum(gammaln(A)))
Run Code Online (Sandbox Code Playgroud)
但是,sum的数量将等于我的矩阵的维数.它看起来很丑,矩阵维度可能会发生变化.
我很好奇是否有任何办法这样做.
zen*_*poy 15
使用reshape而不是(:)运算符:
sum(reshape(gammaln(A),[],1))
Run Code Online (Sandbox Code Playgroud)