AIDE SVP SUR MATLAB
Résolu/Fermé2 réponses
Voila ce que je te propose; avec ça tu devrais pouvoir afficher qu'un seul résultat.
Mais j'ai pas forcément très bien compris ton programme et surtout la fonction de celui-ci (cf commentaires dans le programme).
a=[7 2 8 4 6 5 3 9 1;
4 3 1 9 8 7 5 2 6;
6 5 9 1 2 3 4 8 7;
1 8 5 2 7 4 6 3 9;
9 6 2 3 5 8 1 7 4;
3 4 7 6 9 1 8 5 2;
5 7 6 8 4 2 9 1 3;
2 1 4 5 3 9 7 6 8;
8 9 3 7 1 6 2 4 5]
Y=zeros(9);%% initialisation de Y pour pas avoir n'importe quoi dedans
r=randi(1,1,1),
%% je comprends vraiment pas cette ligne;
mon matlab ne connait pas la fonction "randi"
si il s'agit de la fonction "rand" alors tu n'aura jamais r=2 ou r=3
(rand est utilisé surtout pour les probabilités et te donne un nombre
aléatoire entre 0 et 1)
et dans ce cas, pourquoi utilise tu "for r" après; r est alors une
variable muette; quand tu entres dans ton for, tu passera forcement par
r=1, r=2 et r=3.
Donc si tu décides d'afficher ton resultat dans ta boucle, tu auras
forcémént trois résultats afficher au final.
Et si tu décides de l'afficher à la fin, tu affichera forcément le dernier résultat...
%
%for r=1:3,
switch r
case 1
Y=rot90(a);
case 2
Y=rot90(rot90(a));
case 3
Y=rot90(rot90(rot90(a)));
end
Y
%end
N'hésite pas à renvoyer un message sur ce poste (surtout si tu as réussi! ;) )
Mais j'ai pas forcément très bien compris ton programme et surtout la fonction de celui-ci (cf commentaires dans le programme).
a=[7 2 8 4 6 5 3 9 1;
4 3 1 9 8 7 5 2 6;
6 5 9 1 2 3 4 8 7;
1 8 5 2 7 4 6 3 9;
9 6 2 3 5 8 1 7 4;
3 4 7 6 9 1 8 5 2;
5 7 6 8 4 2 9 1 3;
2 1 4 5 3 9 7 6 8;
8 9 3 7 1 6 2 4 5]
Y=zeros(9);%% initialisation de Y pour pas avoir n'importe quoi dedans
r=randi(1,1,1),
%% je comprends vraiment pas cette ligne;
mon matlab ne connait pas la fonction "randi"
si il s'agit de la fonction "rand" alors tu n'aura jamais r=2 ou r=3
(rand est utilisé surtout pour les probabilités et te donne un nombre
aléatoire entre 0 et 1)
et dans ce cas, pourquoi utilise tu "for r" après; r est alors une
variable muette; quand tu entres dans ton for, tu passera forcement par
r=1, r=2 et r=3.
Donc si tu décides d'afficher ton resultat dans ta boucle, tu auras
forcémént trois résultats afficher au final.
Et si tu décides de l'afficher à la fin, tu affichera forcément le dernier résultat...
%
%for r=1:3,
switch r
case 1
Y=rot90(a);
case 2
Y=rot90(rot90(a));
case 3
Y=rot90(rot90(rot90(a)));
end
Y
%end
N'hésite pas à renvoyer un message sur ce poste (surtout si tu as réussi! ;) )
Utilisateur anonyme
17 mai 2010 à 09:29
17 mai 2010 à 09:29
Merci mec c'est à peu près ça ^^ en fait c'est le même programme sans le for ou alors comme tu l'as fait avec ta boucle while. Ce que je voulais en fait c'est suivant la valeur de r qui est 1,2ou3 grâce à randi qui choisit aléatoirement entre ces 3 chiffres, et bien que le programme exécute telle ou telle rotation pour créer de nouvelles matrices. ;)