
La funzione blockdiag() di Scilab
In Scilab la funzione blockdiag() ti consente di creare una matrice diagonale.
blockdiag(x,y,z,...)
I parametri tra le parentesi tonde sono i valori che vuoi inserire nella diagonale della matrice.
La funzione restituisce una matrice a blocchi con i valori indicati sulla diagonale e tutti gli altri elementi nulli.
Al posto dei valori puoi anche indicare degli array come argomento della funzione. In questo caso la funzione combina gli array a blocchi sulla diagonale di una matrice.
Ti faccio un esempio pratico.
Crea una matrice quadrata con i valori 1, 2, 3 sulla diagonale principale.
blockdiag(1,2,3)
La funzione restituisce questa matrice diagonale
ans =
1. 0. 0.
0. 2. 0.
0. 0. 3.
Ora crea tre array A, B, C
A=[1,2];
B=[3,4,5];
C=[6,7];
Poi utilizza la funzione blockdiag() per creare una matrice diagonale a blocchi.
blockdiag(A,B,C)
Il risultato in output è questa matrice 3x7
ans =
1. 2. 0. 0. 0. 0. 0.
0. 0. 3. 4. 5. 0. 0.
0. 0. 0. 0. 0. 6. 7.
La matrice risultante ha gli array A, B, C lungo la sua diagonale principale, e tutti gli altri elementi sono zeri.