2014-05-01 7 views
5

से मल्टीवायरेट सामान्य यादृच्छिक संख्या मैं Matlab पर C# पर लिखे गए कोड को परिवर्तित कर रहा हूं। Matlab में, mvnrnd नामक एक समारोह है जो सामान्य यादृच्छिक संख्या जनरेटर amultivariate है। इसके लिए दो इनपुट की आवश्यकता है: एन एक्स डी माध्य मैट्रिक्स और डी-बाय-डी कॉव मैट्रिक्स। मैं googled और पाया math.net matrixnormal वही काम करता है।Matlab से C#

मैटलैब में फ़ंक्शन के विपरीत, मैट्रिक्सनोर्मल को तीन इनपुट की आवश्यकता होती है: माध्य मैट्रिक्स (एम), पंक्तियों (वी) के लिए एक कॉव मैट्रिक्स और कॉलम (के) के लिए एक कॉव मैट्रिक्स। दस्तावेज बताता है कि एम का आयाम डी-बाय-एम है तो वी डी-बाय-डी है और के एम-एम-एम है। मैं इन दो आदानों मैट्रिक्स है (1x12 मतलब मैट्रिक्स और 12x12 हिस्सा cov matrixfor मैटलैब। मैं matrixnormal के लिए तीन आदानों में इन दो आदानों परिवर्तित करना चाहते हैं।

मीन मैट्रिक्स हिस्सा एक समस्या नहीं है, लेकिन मैं कैसे कन्वर्ट करने के लिए पता नहीं है cov हिस्सा है। मैं आँकड़ों में अच्छा नहीं कर रहा हूँ। किसी की मदद कर सके कि मैं ऐसा करूं? धन्यवाद,

+0

यह प्रोग्रामिंग समस्या के बजाय गणितीय प्रश्न प्रतीत होता है। एक मल्टीरिएट सामान्य वितरण को मैट्रिक्स सामान्य वितरण में बदलने का एक आसान तरीका है, लेकिन यह केवल विकर्ण मैट्रिस एमयू के लिए मान्य है। मैं इस सवाल से http://stats.stackexchange.com/ – Daniel

उत्तर

0

यह एक सुरुचिपूर्ण समाधान या कुछ भी नहीं है, लेकिन मुझे लगता है कि यह काम कर सकते हैं ...

क्यों नहीं ' क्या आप मानों को भरकर एक कॉन्वर्सिस मैट्रिक्स बनाते हैं, और उसके बाद ColumnCovariance() और RowCovariance() को कॉल करते हैं? मैंने सी # कभी नहीं लिखा है, इसलिए मुझे सिंटैक्स नहीं पता है लेकिन इससे आपको एक सामान्य विचार देना चाहिए:

Matrix covariance = new Matrix([some numbers]) // basically just copy the covariance values 
Matrix rowCov = covariance.getRowCovariance() 
Matrix colCov = covariance.getColumnCovariance() 
+0

पर आपके प्रश्न के लिए धन्यवाद पूछूंगा। मुझे यह भी लगता है कि यह काम करेगा। मैंने अभी यह पता लगाया है कि इस मामले के लिए Accord.net की एक कक्षा है। यह अच्छी तरह से काम करता है और मुझे समय बचाता है। फिर, आपके उत्तर के लिए धन्यवाद !! – user3170073