Bonsoir,

J'aurais besoin de simplifier mon code pour gagner en temps d'exécution, mais je ne sais pas si la méthode que j'ai choisi est la bonne.

Voici la partie de code que j'ai a simplifier:

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
 
    for y=1:yOrdinateMax
        for x=1:xAbscissaMax
            %perform the rotation by using the Rotation array
            ReslutMatrix=([a0 a1; b0 b1])*([x;y])+([a2;b2]);
            NewAbscissaX=ceil(ReslutMatrix(1));
            NewOrdinateY=ceil(ReslutMatrix(2)); 
 
            %Define the smallest Y and the Smallest X
            if ((NewAbscissaX<SmallestAbscissaX)&&(NewOrdinateY<SmallestOrdinateY))
                SmallestAbscissaX=NewAbscissaX;
            elseif ((NewAbscissaX<SmallestAbscissaX))
                SmallestAbscissaX=NewAbscissaX;
            elseif ((NewOrdinateY<SmallestOrdinateY))
                SmallestOrdinateY=NewOrdinateY;
            end
        end
    end
Je pensais utiliser la fonction suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
y=1:yOrdinateMax;
x=1:xAbscissaMax;
ReslutMatrix=([a0 a1; b0 b1]).*([x;y])+([a2;b2]);
Et utiliser la fonction min pour trouver le smallest Ordinate Y et X.
Mais déja la première partie ne fonctionne.
Voici le message d'erreur que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
??? Error using ==> vertcat
All rows in the bracketed expression must have the same 
number of columns.

Error in ==> RotateImage12 at 44
ReslutMatrix=([a0 a1; b0 b1])*([x;y]);%+([a2;b2]);
Merci beaucoup pour votre aide.
Thomas