2011-12-04 12 views
9

Matlab के लिए आर के dput() के बराबर है?Matlab के लिए आर के dput() के बराबर है?

ड्यूटी() एक फ़ाइल या कनेक्शन में आर ऑब्जेक्ट का एएससीआईआईआई पाठ प्रस्तुतिकरण लिखता है।

+0

क्या आप द्विआधारी प्रतिनिधित्व भी लिखते हैं? – Beginner

+0

नहीं - केवल आर या ड्यूटी() –

+0

@QuantGuy के रूप में एक ही आसानी से संरचित डेटा को ईमेल या पोस्ट करने का एक आसान तरीका ढूंढना, मेरा उत्तर नीचे देखें। बस मुझे बताएं कि आपको कौन से अन्य डेटा प्रकार चाहिए, और मैं उनको जोड़ने की कोशिश करूंगा। महान विचार, वैसे! –

उत्तर

10

अद्यतन 1: कोशिकाओं के लिए रिकर्सन और समर्थन जोड़ा गया!

अद्यतन 2: संरचनाओं के लिए समर्थन जोड़ा गया!

अद्यतन 3: लॉजिकल, पूर्णांक, जटिल युगल के लिए समर्थन जोड़ा गया। यूनिट परीक्षण जोड़ा गया। http://www.mathworks.com/matlabcentral/fileexchange/34076

नोट: पर FileExchange को प्रकाशित किया गया था आगे की सभी अद्यतन के लिए https://github.com/johncolby/dput पर GitHub की जाँच करें।


कोई अंतर्निहित बराबर है, लेकिन एक बनाने के लिए टेम्पलेट काफी सरल है, इसलिए मैंने सोचा कि मैं यह कर रही शुरू कर दूं। चरों पर बस लूप करें और डेटा के प्रकार के आधार पर एक स्ट्रिंग समतुल्य लिखें।

मैंने इसके लिए एक गिट भंडार शुरू किया, इसलिए इसे फोर्क करने के लिए स्वतंत्र महसूस करें और मुझे विभिन्न डेटा प्रकारों में मदद करें। मूलभूत प्रकार पूर्ण होने पर मैं इसे फ़ाइल एक्सचेंज पर पोस्ट करूंगा (कम से कम, डबल, स्ट्रक्चर, सेल)।

https://github.com/johncolby/dput

कुछ उदाहरण चर

x = 1:10; 
y = 3; 
z = magic(3); 
mystr = ['line1'; 'line2']; 
mystruct = mystruct = struct('index', num2cell(1:3), 'color', {'red', 'blue', 'green'}, 'misc', {'string' 4 num2cell(magic(3))}) 
mycell = {1:3, 'test'; [], 1}; 

मूल उपयोग है के साथ शुरू:

>> dput(x, y, z, mystr, mystruct, mycell) 

ans = 

x  = reshape([1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 ],[1 10])                                                                                                                  ; 
y  = reshape([3.000000 ],[1 1])                                                                                                                                       ; 
z  = reshape([8.000000 3.000000 4.000000 1.000000 5.000000 9.000000 6.000000 7.000000 2.000000 ],[3 3])                                                                                                                     ; 
mystr = reshape('lliinnee12',[2 5])                                                                                                                                      ; 
mystruct = struct('index',reshape({reshape([1.000000 ],[1 1]) reshape([2.000000 ],[1 1]) reshape([3.000000 ],[1 1]) },[1 3]),'color',reshape({reshape('red',[1 3]) reshape('blue',[1 4]) reshape('green',[1 5]) },[1 3]),'misc',reshape({reshape('string',[1 6]) reshape([4.000000 ],[1 1]) reshape({reshape([8.000000 ],[1 1]) reshape([3.000000 ],[1 1]) reshape([4.000000 ],[1 1]) reshape([1.000000 ],[1 1]) reshape([5.000000 ],[1 1]) reshape([9.000000 ],[1 1]) reshape([6.000000 ],[1 1]) reshape([7.000000 ],[1 1]) reshape([2.000000 ],[1 1]) },[3 3]) },[1 3])); 
mycell = reshape({reshape([1.000000 2.000000 3.000000 ],[1 3]) reshape([ ],[0 0]) reshape('test',[1 4]) reshape([1.000000 ],[1 1]) },[2 2])                                                                                                            ; 

तो फिर तुम सिर्फ पाठ ऑनलाइन एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण बनाने के लिए पेस्ट कर सकते हैं, और दूसरों कर सकते हैं चर पुन: उत्पन्न करने के लिए MATLAB में वापस कॉपी/पेस्ट करें। आर के लिए बस!

+1

भयानक। रास्ते में सामान्य समुदाय के लिए जिथब के माध्यम से बड़ा योगदान, धन्यवाद! –

+0

जब मैं ड्यूटी-स्टाइल चीज़ प्राप्त करने का प्रयास करता हूं तो मुझे त्रुटियां मिलती हैं: http://pastebin.com/Atz696me – hhh

+0

जॉन: आर से आने वाले उपयोग के लिए बहुत बढ़िया उत्तर और बहुत उपयोगी। मुझे आश्चर्य है कि क्या आप समर्थन जोड़ने पर विचार करेंगे टाइम्सरी ऑब्जेक्ट्स? मैं मैटलैब के लिए नया हूं और यदि मैं इसे स्वयं समझ सकता हूं तो मैं इसे साथ भेजूंगा। – LGTrader

4

प्रश्न स्पष्ट रूप से एक काम करने वाले मैटलैब स्थापना को मानता है। यदि आप Matlab ऑब्जेक्ट्स में डेटा का उपयोग करके आर में उदाहरण बनाना चाहते हैं, तो "R.matlab" पैकेज में स्पष्ट रूप से readMat है। आप आर के साथ मैटलैब फ़ाइल (या सर्वर कनेक्शन का उपयोग करें) से डेटा निकाल सकते हैं और फिर dput या dump का उपयोग कर सकते हैं।

के भीतर सिर्फ मैटलैब, कम से कम प्रलेखन की मेरी पढ़ने, विकल्प मैं देखना accoring (और यह केवल लागू मैटलैब मैट्रिक्स के लिए हो सकता है)

filename='asc.txt' 
save(filename, 'mat', '-ascii') 
type asc.txt 

वहाँ हालांकि नहीं वास्तव में विकल्प भी है (है एएससीआईआई की भावना में) सामान्य डेटा प्रारूप का उपयोग करने के लिए जिसके लिए मैटलैब-लेखन और आर-रीड फ़ंक्शन हैं।

+0

मेरा मानना ​​है कि ओपी वास्तव में MATLAB उदाहरणों को एक ही आसानी से बनाना चाहता है, वह आर उदाहरण बना सकता है। क्या ये सही है? –

+0

MATLAB की 'save()' वास्तव में एक सीमा है कि "प्रत्येक चर दो-आयामी डबल या चार सरणी होना चाहिए"।इसके अलावा, ये पेस्ट-सक्षम नहीं हैं, इसलिए सामान्य बाइनरी .mat प्रतिनिधित्व का उपयोग करने पर आसानी से उपयोग पोस्ट करने के लिए वास्तव में कोई लाभ नहीं है। –

संबंधित मुद्दे