2016-02-22 1 views
0

J'ai ce système d'équations 3x3 pour la chaîne markov 2-D. Je veux cartographier les coefficients de cette matrice pour ressembler à cette matrice 9x9 ayant ces coefficients de zéros, mais je ne sais pas comment procéder. De l'aide ?Impossible de mapper une matrice dans Matlab

[ 5*P11 - 2*P12 - 2*P21, 7*P12 - 5*P11 - 4*P13 - 2*P22,   9*P13 - 5*P12 - 2*P23] 
[ 7*P21 - 2*P22 - 4*P31, 9*P22 - 5*P21 - 4*P23 - 4*P32, 11*P23 - 5*P22 - 5*P13 - 4*P33] 
[   9*P31 - 2*P32,  11*P32 - 5*P31 - 4*P33,   8*P33 - 5*P32 - 5*P23] 

Coefficient Matrix

+0

Pxx sont des variables symboliques? – Daniel

+0

Oui, c'est symb. –

+0

@Daniel Il est dit fonction indéfinie 1P11 '. J'ai créé mes variables symboliques comme ceci. n = 2; jmax = n + 1; P = sym (zéros ((n + 1), (n + 1))); pour j1 = 1: jmax pour j2 = 1: jmax P (j1, j2) = sym (sprintf ('P% d% d', j1, j2)); fin fin –

Répondre

1

Vous pouvez utiliser coeffs pour obtenir les coefficients.

syms P11 P12 P13 P21 P22 P23 P31 P32 P33 
%your data 
T=[ 5*P11 - 2*P12 - 2*P21, 7*P12 - 5*P11 - 4*P13 - 2*P22,   9*P13 - 5*P12 - 2*P23;... 
    7*P21 - 2*P22 - 4*P31, 9*P22 - 5*P21 - 4*P23 - 4*P32, 11*P23 - 5*P22 - 5*P13 - 4*P33;... 
    9*P31 - 2*P32,  11*P32 - 5*P31 - 4*P33,   8*P33 - 5*P32 - 5*P23]; 
%get a list of all variables. Optional, sort here if you expect another ordering. 
allvars=symvar(T); 

%initialize empty matix 
C=zeros(numel(T),numel(allvars)); 
%build up coefficient matrix 
for ix=1:numel(T) 
    [a,b]=coeffs(T(ix)); 
    C(ix,ismember(allvars,b))=a; 
end 

qui retourne

>> C 

C = 

    5 -2  0 -2  0  0  0  0  0 
    0  0  0  7 -2  0 -4  0  0 
    0  0  0  0  0  0  9 -2  0 
    -5  7 -4  0 -2  0  0  0  0 
    0  0  0 -5  9 -4  0 -4  0 
    0  0  0  0  0  0 -5 11 -4 
    0 -5  9  0  0 -2  0  0  0 
    0  0 -5  0 -5 11  0  0 -4 
    0  0  0  0  0 -5  0 -5  8 
+0

Juste une petite question. J'essaie d'entrer mon code dans cette section de commentaire, mais mon code ne s'affiche pas comme le vôtre. –

+0

'P = sym ('P', [3,3])' pourrait être un moyen de le simplifier. – Daniel

+0

Beaucoup mieux. Si vous remarquez, l'une des entrées (-4) dans la dernière colonne est égarée. Il devrait être dans la colonne 5. Aussi, je veux que ce soit une matrice dominante diagonale. –