AIDE SVP SUR MATLAB
Résolu
Utilisateur anonyme
-
gr -
gr -
Bonjour,
Voila je dois effectuer un programme sur matlab et dans mon programme, je ne sais pas comment afficher un SEUL résultat. Voici mon 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]
r=randi(3,1,1),
for r=1:3,
if r==1,
Y=rot90(a);
elseif r==2,
W=rot90(rot90(a));
elseif r==3,
Z=rot90(rot90(rot90(a)));
end
end
je voudrais quil affiche la nouvelle matrice si r=1 ou si r=2 etc .. pcq quand j'ai mis des disp pour chaque cas, et bien quelque soit le r choisi il me montre les 3 matrices au final donc voila j'aurai besoin de votre aide pour n'en afficher qu'une seule merci :)
Voila je dois effectuer un programme sur matlab et dans mon programme, je ne sais pas comment afficher un SEUL résultat. Voici mon 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]
r=randi(3,1,1),
for r=1:3,
if r==1,
Y=rot90(a);
elseif r==2,
W=rot90(rot90(a));
elseif r==3,
Z=rot90(rot90(rot90(a)));
end
end
je voudrais quil affiche la nouvelle matrice si r=1 ou si r=2 etc .. pcq quand j'ai mis des disp pour chaque cas, et bien quelque soit le r choisi il me montre les 3 matrices au final donc voila j'aurai besoin de votre aide pour n'en afficher qu'une seule merci :)
A voir également:
- AIDE SVP SUR MATLAB
- Gnu octave matlab - Télécharger - Édition & Programmation
- Fonction matlab - Forum Matlab
- Commande DTC sur Matlab - Forum Matlab
- Programmer avec MATLAB ✓ - Forum Matlab
- Termes de Matlab ✓ - Forum Matlab
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! ;) )
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. ;)