2012-10-09 7 views
7

मैटलैब में, एक struct सरणियों क्षेत्र foo करने के लिए सेल सरणियों बताएअसाइन मूल्य

my_array(1000).foo = []; 
[my_array.foo] = some_cell{:}; 

अब के साथ संभव है मैं आवंटित किया गया है एक भी करना चाहते हैं क्या सरणी में सभी क्षेत्रों के लिए मूल्य। लेकिन जो भी मैंने कोशिश की, मैटलैब चुपचाप यह मानते हुए त्रुटि संदेशों को वापस कर देगा कि अगर मैं [1x1] आकार का एक तत्व असाइन करना चाहता हूं, तो इसे सभी फ़ील्ड को असाइन किया जाना चाहिए। मैं खुश हो सकता है अगर मैं बस, उदा, कह सकते हैं .:

my_array.foo = pi; 
??? Incorrect number of right hand side elements in dot name assignment. 
Missing [] around left hand side is a likely cause. 

तो, मैं एक ही मूल्य एक क्षेत्र के लिए सभी एक struct सरणी पर असाइन कर सकते हैं?

उत्तर

12

आप इस समस्या को हल करने के लिए deal उपयोग कर सकते हैं:

my_array(1000).foo = []; 
[my_array.foo] =deal(pi); 

हालांकि, दूसरी पंक्ति में ध्यान दें वर्ग कोष्ठक के साथ अस्थायी रूप से परिवर्तित करने के लिए अल्पविराम एक वेक्टर में सूची my_array.foo अलग जरूरी हैं।

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