Matlab

2010-12-23 15 views
6

में डेटा फ़ाइल से 3 डी सतह को साजिश कैसे करें मेरे पास 3 कॉलम, एक्स, वाई, जे के साथ एक डेटा फ़ाइल है और मैं सतह को देखने के लिए 3 डी प्लॉट करना चाहता हूं।Matlab

मैं मैश्रिड का उपयोग कर सकता था, लेकिन समस्या यह है कि मेरे पास केवल उन वाई के लिए डेटा है जो y < = x है। क्या इसे करने का कोई तरीका है?

एक उदाहरण:

 
x y z 
============ 
1 1 0.5 
2 1 0.3 
2 2 1.2 
3 1 1.1 
3 2 8.0 
3 3 1.4 
============ 

उत्तर

5

आप लापता मूल्यों निर्धारणात्मक भर सकते हैं, बस x और y दोनों के लिए दो नेस्टेड छोरों के साथ एक छोटे स्क्रिप्ट।

अन्यथा MATLAB दस्तावेज़ में फ़ंक्शन meshgrid पर फिर से देखें। वहां आप See Also अनुभाग देख रहे हैं। गलती से वहां कोई फ़ंक्शन griddata सूचीबद्ध नहीं है। आपको यही चाहिए! मैं gridfit की भी सिफारिश कर सकता हूं जो कि बेहतर है।

0

आप अपने पास के बिंदुओं के माध्यम से सतह को फिट कर सकते हैं और फिर सतह को ग्राफ़ कर सकते हैं। मैं पूर्ण क्वाड्रैटिक मॉडल उत्पन्न करने के लिए x2fx फ़ंक्शन का उपयोग करना चाहता हूं, फिर मॉडल को डेटा फिट करने के लिए \ ऑपरेटर का उपयोग करें। क्या आपको सतह की अंतर्निहित प्रकृति के बारे में कोई जानकारी है जिसे आप ग्राफ करने की कोशिश कर रहे हैं? क्या आपके डेटा में बहुत शोर है? वह 8.0 जगह से थोड़ी दूर दिखता है, क्या यह एक बाहरी है या वह उचित डेटा है?

7

कई मामलों में, trisurf का उपयोग करने का एक सरल समाधान है। उदाहरण के लिए ...

x = [1, 2, 2, 3, 3, 3]; 
y = [1, 1, 2, 1, 2, 3]; 
z = [0.5, 0.3, 1.2, 1.1, 1.8, 1.4]; 

tri = delaunay(x,y); 
trisurf(tri,x,y,z) 

alt text

+0

नोट: मैं मान लिया है कि 8 उन संख्याओं को लिखने में कोई गलती थी, इसलिए मैं 1.8 में डाल दिया। इसके अलावा, यदि (x, y) विमान में डेटा एक उत्तल क्षेत्र का प्रतिनिधित्व नहीं करता है, तो delaunay अभी भी इसे उत्तल होने के लिए मजबूर करेगा। यह किनारों के चारों ओर इंटरपोलेशन कलाकृतियों को पेश कर सकता है। –