मतलब में मेरे दो दोस्त हैं।
तथा
मैं समान होने वाले तत्वों को असाइन करना चाहता हूंइसके अनुसार सेल-वैल्यू ए मैट्रिक्स में संबंधित कॉलम नंबर है और वहां तत्वों को स्थानांतरित करता है। मैं बी के तत्वों को ए के साथ मैप करना चाहता हूं ताकि बी तत्व भी उस स्थिति में चले जाएं।
मैं यह चाहता हूँ
और इसीलिए,
क्या इसे करने का कोई तरीका है?! धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 1सबसे आसान तरीका है जिसके बारे में मैं सोच सकता हूंपंक्ति / स्तंभ जोड़े जहाँ पंक्तियाँ मैट्रिक्स के पंक्ति स्थानों से मेल खाती हैं और स्तंभ स्थान स्वयं मैट्रिक्स के वास्तविक तत्व हैं। इन पंक्ति / स्तंभ युग्मों में देखे गए मान फिर से केवल मैट्रिक्स मान हैं।
आप बहुत आसानी से ऐसा कर सकते हैं sparse
। ऊपर मैट्रिक्स को फिर से बनाना और इसमें स्टोर करना A
:
A = [1 2 5 8; 1 2 4 7];
... मैं इसे इस तरह से करूंगा:
r = repmat((1:size(A,1)).", 1, size(A,2)); %"
S = full(sparse(r(:),A(:),A(:)));
कोड की पहली पंक्ति मैट्रिक्स में प्रत्येक मान के लिए पंक्ति स्थान बनाती है A
, फिर उपयोग कर रहे हैं sparse
पंक्ति / स्तंभ जोड़े और संबंधित मान निर्दिष्ट करने के लिए और हम उपयोग करते हैं full
एक उचित संख्यात्मक मैट्रिक्स में परिवर्तित करने के लिए।
हमें मिला:
S =
1 2 0 0 5 0 0 8
1 2 0 4 0 0 7 0
आप मैट्रिक्स के लिए भी ऐसा कर सकते हैं B
। आप "उपयोग करें sparse
और होने के लिए तीसरा पैरामीटर निर्दिष्ट करें B
बजाय:
B = [0.5 0.2 0.6 0.8; 0.4 0.6 0.8 0.9];
S2 = full(sparse(r(:),A(:),B(:)));
हमें मिला:
>> S2
S2 =
0.5000 0.2000 0 0 0.6000 0 0 0.8000
0.4000 0.6000 0 0.8000 0 0 0.9000 0