J'ai une séquence x = [12,14,6,15,15,15,15,6,8,8,18,18,14,14] donc je veux faire une matrice de probabilité de transition. Matrice de probabilité de transition calculée par l'équation, c'est-à-dire la probabilité = (nombre de paires x (t) suivi de x (t + 1))/(nombre de paires x (t) suivi de n'importe quel état). Matrice devrait être comme par le code suivant ci-dessouscomment programmer dans Matlab pour obtenir une matrice de probabilité de transition?
6 8 12 14 15 18
6 0 1/2 0 0 1/2 0
8 0 1/2 0 0 0 1/2
12 0 0 0 1 0 0
14 1/2 0 0 1/2 0 0
15 1/4 0 0 0 3/4 0
18 0 0 0 0 1/2 1/2
Je peux faire
m = max(x);
n = numel(x);
y = zeros(m,1);
p = zeros(m,m);
for k=1:n-1
y(x(k)) = y(x(k)) + 1;
p(x(k),x(k+1)) = p(x(k),x(k+1)) + 1;
end
p = bsxfun(@rdivide,p,y); p(isnan(p)) = 0;
mais avec cette forme matrice de code d'ordre état actuel maximal en séquence à-dire la matrice devient de 18 * 18, et beaucoup plus d'endroits zéro se produit. Je veux une matrice comme ci-dessus posté par moi comment le faire.
ceci différent de [votre autre question sans réponse sur les matrices de probabilité de transition] (http://stackoverflow.com/questions/37054721/how-to-obtain-transition-probability-matrix-in-matrix)? –
@AndrasDeak Il veut maintenant supprimer les numéros qui ne sont pas impliqués dans une probabilité quelconque. – xvan
@Rams cette question est mal formulée, supprimer toutes les informations relatives à la génération de probabilités de transition car ce n'est pas pertinent, il suffit de poster la matrice 18 * 18, et la matrice cible. – xvan