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