Voilà y a un moment on m'a conseillé de vectoriser mes programmes afin de les optimiser,mais je n'arrive pas à optimiser mon code
voici une partie de mon programme que je veux vectoriser :

Si j'ai une matrice P(m=3,n=9) :
Par exemple ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
P =[  9     8     5     7     2     4     1     6     3
     9     8     5     7     2     4     6     1     3
     9     8     5     7     2     4     6     3     1]
Je souhaite construire la matrice PP ((n-2)*m,n) où
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PP=[9     8     5     7     2     4     1     6     3
     9     8     5     7     2     4     6     1     3
     9     8     5     7     2     4     6     3     1
     9     7     5     8     2     4     1     6     3
     9     7     5     8     2     4     6     1     3
     9     7     5     8     2     4     6     3     1
     9     6     5     8     2     4     1     7     3
     9     6     5     8     2     4     7     1     3
     9     6     5     8     2     4     7     3     1
     9     5     6     8     2     4     1     7     3
     9     5     6     8     2     4     7     1     3
     9     5     6     8     2     4     7     3     1
     9     4     6     8     2     5     1     7     3
     9     4     6     8     2     5     7     1     3
     9     4     6     8     2     5     7     3     1
     9     3     6     8     2     5     1     7     4
     9     3     6     8     2     5     7     1     4
     9     3     6     8     2     5     7     4     1
     9     2     6     8     3     5     1     7     4
     9     2     6     8     3     5     7     1     4
     9     2     6     8     3     5     7     4     1]
Pour calculer PP j’ai écrit ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
PP=zeros((n-2)*m,n);
    PP(1:m,:)=P;
    clear P
    for r=n-1:-1:3
        PP((n-r)*m+1:(n-r+1)*m,:)=PP((n-(r+1))*m+1:(n-(r+1)+1)*m,:)-((r-1)-r)*(PP((n-(r+1))*m+1:(n-(r+1)+1)*m,:)==r-1)+((r-1)-r)*(PP((n-(r+1))*m+1:(n-(r+1)+1)*m,:)==r);
    End
Est ce qu'il est possible d'optimiser ce calcul ? (trouver PP sans boucle )
Merci d'avance pour votre aide :