matlab

2012-12-04 23 views
8

में संरचना सरणी से आइटम को निकालना मेरे पास matlab में एक बहुत बड़ी संरचना सरणी है।matlab

structure(1).name = 'a'; 
structure(2).name = 'b'; 
structure(3).name = 'c'; 
structure(1).returns = 1; 
structure(2).returns = 2; 
structure(3).returns = 3; 

अब मान लीजिए कि मैं कुछ शर्त यह है कि साथ आता है और मुझे मेरे संरचना सरणी में structure(2) से सब कुछ (किसी भी और सभी प्रविष्टियों को हटाना चाहते हैं करता है: तर्क की खातिर, मान लीजिए, स्थिति को आसान बनाने, मैं की तरह कुछ है)। ऐसा करने का एक अच्छा तरीका क्या है?

मेरा समाधान केवल संबंधित क्षेत्रों को [] (उदा। structure(1).name = [];) पर सेट करना है, लेकिन यह उन्हें नहीं हटाता है, जो केवल उन्हें खाली बनाता है। मैं वास्तव में संरचना सरणी से पूरी तरह से उन्हें कैसे हटा सकता हूं? क्या उधर रास्ता है?

उत्तर

12

सरल आप सूचकांक i पर तत्व नष्ट करने के लिए निम्न कार्य करना चाहते हैं:

i = 3 
structure(i) = []; 

और वह सूचकांक 3 पर तत्व निकाल देंगे।

उदाहरण:

st.name = 'text'; 
st.id = 1524; 
arrayOfSt = [st st st st st]; 

अब:

arrayOfSt = 

    1x5 struct array with fields: 
     name 
     id 

अगर हम निष्पादित करें:

arrayOfSt(2) = []; 

तो structers की सरणी के नए मान होगा:

arrayOfSt = 

    1x4 struct array with fields: 
     name 
     id 

इसे आज़माएं!

+0

बिल्कुल सही, आपको बहुत धन्यवाद। –