Matlab

2015-08-03 8 views
5

में एक स्पैर ब्लॉक विकर्ण मैट्रिक्स बनाना मान लीजिए बी बी मैटलैब में स्पैर मैट्रिस का एक सेल सरणी है, और मैं एक स्पैस ब्लॉक विकर्ण मैट्रिक्स एम बनाना चाहता हूं जिसका विकर्ण ब्लॉक बी में संग्रहीत मैट्रिक्स हैं। सबसे आसान/सबसे कुशल क्या है ऐसा करने का तरीका? एक comma-separated list सेल सरणी से उत्पन्न परMatlab

उत्तर

3

उपयोग blkdiag:

result = blkdiag(B{:}); 

उदाहरण के लिए,

B = {sparse([1 0 0; 2 2 0; 3 3 3]), 4*speye(2)}; 

के साथ इस का उत्पादन

>> result 
result = 
    (1,1)  1 
    (2,1)  2 
    (3,1)  3 
    (2,2)  2 
    (3,2)  3 
    (3,3)  3 
    (4,4)  4 
    (5,5)  4 
>> full(result) 
ans = 
    1  0  0  0  0 
    2  2  0  0  0 
    3  3  3  0  0 
    0  0  0  4  0 
    0  0  0  0  4 
+0

बिल्कुल सही है, धन्यवाद। – littleO