2013-04-08 3 views
6

मैं मैटलैब से बहुत परिचित नहीं हूं इसलिए इस मूर्ख सवाल के लिए पहले से माफी माँगता हूं। मैं मैट्रिक्स के कुछ विशिष्ट स्थानों पर नंबर 1 असाइन करना चाहता हूं। मेरे पास एक पंक्ति वेक्टर और संबंधित कॉलम वेक्टर है। मैंने कई बार इन स्थानों पर मूल्य आवंटित करने का प्रयास किया। हालांकि, यह काम नहीं किया। यहां एक छोटा आकार कोड उदाहरण है। मान लें कि एक 4 * 4 मैट्रिक्स है और मैं मैट्रिक्स (1,1), मैट्रिक्स (2,3) और मैट्रिक्स (3,4) से 1 को असाइन करना चाहता हूं। यही वह है जो मैंने किया था।MATLAB में मैट्रिक्स के विशिष्ट स्थानों पर मान कैसे असाइन करें?

matrix = zeros(4,4); 
row = [1 2 3]; 
col = [1 3 4]; 
matrix(row,col)=1; 

हालांकि, मैं किसी का कहना है सकते हैं कि मैं गलत यहाँ क्या कर

matrix=[ 1 0 1 1 
     1 0 1 1 
     1 0 1 1 
     0 0 0 0]  

के रूप में इस सवाल का जवाब मिल गया? मैं जिस मैट्रिक्स पर काम करने जा रहा हूं उसका वास्तविक आकार हजारों में है इसलिए मैं उन पदों को एक-एक करके मैन्युअल रूप से असाइन नहीं कर सकता। क्या पंक्ति वेक्टर और कॉलम वेक्टर का उपयोग करने का कोई तरीका है मुझे मूल्य 1 असाइन करना है? आपको बहुत बहुत धन्यवाद,

+2

यह उपयोगी हो सकता है: http://stackoverflow.com/questions/6850368/how-can-i-change-the-values-of-multiple-points-in-a-matri एक्स? आरक्यू = 1 –

+0

बहुत बहुत धन्यवाद। मैंने पोस्ट की जांच की और यह बहुत उपयोगी है। – Cassie

उत्तर

8

आप sub2ind उपयोग कर सकते हैं पदों आप को असाइन करने और काम के लिए उन का उपयोग करना चाहते के रैखिक सूचकांक की गणना करने के:

indices = sub2ind(size(matrix), row, col); 
matrix(indices) = 1; 
+0

बहुत बहुत धन्यवाद। इसने काम कर दिया ! – Cassie

1
matrix(1,1) = 1 
matrix(2,3) = 1 
matrix(3,4) = 1 
+2

उत्तर देने के लिए बहुत बहुत धन्यवाद। हालांकि, मेरे मैट्रिक्स का वास्तविक आकार हजारों में है। मैं एक-एक करके असाइन नहीं कर सकता। तो वैसे भी पंक्ति वेक्टर और कॉलम वेक्टर का उपयोग करने के लिए वैसे भी है? धन्यवाद – Cassie

1

एक टक्कर के बारे में थोड़ी। जब तक आप काफी कुछ असन्निकट पंक्तियाँ या कॉलम कर रहे हैं, एक बहुत ही उपयोगी तरीका

तरह
matrix(1:3,2:4)=1 

यह बहुत आसानी से

तत्व गणित का समर्थन करता है इस

{0 0 0 0} 
{0 0 0 0} 
{0 0 0 0} 
{0 0 0 0} 

चालू करेंगे

{0 1 1 1} 
{0 1 1 1} 
{0 1 1 1} 
{0 0 0 0} 
में
संबंधित मुद्दे