2012-01-09 9 views
9

हाय मुझे Matlab के साथ यह लिखने में समस्या है। तोMatlab, औसत से कम सरणी से तत्व हटा दें?

स्थिति: सरणी में उदाहरण के लिए (100, 90, 80, 4, 2, 200) शामिल हैं। मैं इन संख्याओं के औसत की गणना करना चाहता हूं और इसके बाद, केवल उन संख्याओं को रखें जो औसत से बराबर या बड़े होते हैं।

क्या कोई मुझे बता सकता है कि यह कैसे किया जा सकता है?

उत्तर

16

व्यक्तिगत रूप से, मैं पसंद

x(x < mean(x)) = []; 

के बाद से यह स्पष्ट करता है कि आप एक सरणी से तत्व हटा रहे हैं बनाता है, तत्वों के एक सबसेट के साथ एक सरणी बनाने के बजाय जो समान नाम होता है।

ध्यान दें कि, औसतन, वहाँ इस और

x = x(x >= mean(x)); 
+0

ऐसा करने से मैट्रिक्स को सरणी में परिवर्तित किया जाता है। क्या मैट्रिक्स प्रारूप को संरक्षित करने का कोई तरीका है? –

+0

आपको इसे एक अलग प्रश्न के रूप में पूछने की आवश्यकता है। – Nzbuu

5

मान लें कि आपका सरणी एक्स है, तो आप यह कर सकते हैं इस प्रकार है:

x = x(x >= mean(x)) 
+0

धन्यवाद के बीच कोई प्रदर्शन अंतर होना चाहिए, मैं केवल अब एक और समस्या यह है कि उसके बाद मैं अपने सूचकांक के खिलाफ यह साजिश के लिए इस्तेमाल किया है। ऑर्डर बदलने के बिना आइटम को हटाने का कोई तरीका है? उदाहरण एक्स (1) = 100 एक्स (2) 9 0 एक्स (3) 80 एक्स (5) 200 और बस कम मान – Zalaboza

+2

एक्स (x> = माध्य (x)) = 0; या एक्स (एक्स> = माध्य (एक्स)) = NaN; – Tobold

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