2012-03-05 20 views
5

का उपयोग किये बिना matlab में सभी तत्वों को जोड़ना मैं Matlab में मैट्रिक्स के सभी तत्वों को जोड़ना चाहता हूं। अगर मैं एक मैट्रिक्स नामक एक था, तो मैंकॉलन ऑपरेटर

sum(A(:)); 

फोन करके सभी तत्वों को जोड़ सकते हैं लेकिन मैं इस तरह एक समारोह से लौट रहे तत्वों योग करने के लिए करना चाहते हैं:

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

बेशक मैं यह कर सकता दो चरणों में:

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

लेकिन यहां मैं एक बी मैट्रिक्स बना रहा हूं, जिसकी मुझे आवश्यकता नहीं है। और मैं इसे इस तरह से कर सकता हूं:

sum(sum(gammaln(A))) 

लेकिन, योग की संख्या मेरे मैट्रिक्स के आयाम के बराबर होगी। यह बदसूरत लग रहा है, और मैट्रिक्स आयाम बदल सकता है।

यदि यह करने का कोई तरीका है तो मैं उत्सुक हूं।

उत्तर

14

उपयोग reshape बजाय (:) ऑपरेटर की:

sum(reshape(gammaln(A),[],1)) 
संबंधित मुद्दे