在matlab中求和所有元素而不使用冒号运算符
我想在Matlab中求矩阵的所有元素的和。如果我有一个叫做a的矩阵,那么我可以通过调用在matlab中求和所有元素而不使用冒号运算符,matlab,Matlab,我想在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(A(:));
但我想对函数返回的元素求和,如下所示:
sum(gammaln(A)) % where gammaln is the logarithm of gamma function
当然,我可以分两步来完成:
B = gammaln(A);
sum(B(:));
但这里我创建了一个B矩阵,我根本不需要它。我也可以这样做:
sum(sum(gammaln(A)))
但是,和的数量将等于我的矩阵的维数。它看起来很难看,矩阵尺寸可能会改变
我很好奇是否有办法做到这一点 使用
重塑
而不是(:)
运算符:
sum(reshape(gammaln(A),[],1))