MATLAB: remplacement de la ligne dans la matrice par la ligne précédente en fonction de la condition

salut
Disons que j’ai une matrice:
 
A=[2,5,3;5,8,2;1,-2,5]
 
Si une valeur dans l’une des lignes est -2, la ligne entière doit être remplacée par la ligne précédente.
Le résultat serait donc:
 
A=[2,5,3;5,8,2;5,8,1]
 
La matrice se compose de 1 million de lignes, donc je recherche la méthode la plus rapide.

Meilleure réponse

  • Voici une façon:
     

    while any(A(:)==-2)
    rowToReplace = find(any(A==-2,2));
    A(rowToReplace,:) = A(rowToReplace-1,:);
    end