2012-03-05 20 views
5

Quiero sumar todos los elementos de la matriz en Matlab. Si tuviera una matriz denominada A, entonces puedo resumir todos los elementos llamandosumando todos los elementos en matlab sin usar el operador de dos puntos

sum(A(:)); 

Pero me gustaría resumir los elementos que vuelven de una función como esta:

sum(gammaln(A)) % where gammaln is the logarithm of gamma function 

Por supuesto que puedo hacer esto en dos pasos:

B = gammaln(A); 
sum(B(:)); 

Pero aquí creo una matriz B, que no necesito en absoluto. Y también puedo hacerlo de esta manera:

sum(sum(gammaln(A))) 

embargo, el número de suma de será igual a la dimensión de mi matriz. Se ve feo y la dimensión de la matriz puede cambiar.

Tengo curiosidad si hay alguna manera de hacer esto.

Respuesta

14

uso reshape en lugar de (:) operador:

sum(reshape(gammaln(A),[],1)) 
Cuestiones relacionadas