[Matlab] Utilisation de la fonction or(a,b,c...)

Résolu/Fermé
weak007 Messages postés 10 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 11 juillet 2005 - 4 juil. 2005 à 14:19
bibicha_01 Messages postés 17 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 31 juillet 2007 - 27 déc. 2006 à 19:20
bonjour,

j'aimerai realiser une operation du genre:
if ((x,y,z...une ou plusieurs de ses imputs) ==7)
serie de calcul...
M=[...,...,...];
else
M=[0;0;0;0;0;0];
end
mes inputs sont sous la forme de matrice: opaque(i,1) et window(i,1) avec i=1:9
Peut etre je peux faire ca avec la fonction OR, mais j'ai pas bien compris ce qu'elle renvoyait. Quelqu'un pourrait il m'eclairer SVP??
merci beaucoup
A voir également:

7 réponses

salut
tu peux faire un simple if x==7
tes calculs....
elseif y==7
tes calculs...
.
.
.
else M=[0,0,...]
c'est long mais ca marche!
tchuss
0
weak007 Messages postés 10 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
5 juil. 2005 à 11:31
en fait j'ai 18 variables, si l'une ou plusieur d'entre elles sont egales a 7 (7 etant le code rendu par l'une de possibilite d'un popmenu d'une interface), je realise un calcul pour obtenir une matrice M...sinon je defini M comme une matrice nulle.

j'ai donc besoin de comparer toutes les variables et non 2 par 2, apparemment XOR et OR n'acceptent pas plus de 2 variables.
Mais te creuse pas trop la tete, Je crois que la reponse postee par lilou avec les if, elseif me convient!!
merci beaucoup
0
re-salut,
le code de lilou est très bien mais il va vite être illisible.

tu as écrit : si l'une ou plusieur d'entre elles sont egales a 7 => ca ce code en 1 ligne :

if( (var1==7) | (var2==7) | ... | (var18==7) )
blabla1
else
blabla2
endif

point, c'est tout.

Le prgm est tel que dès qu'il y a une variable qui vaut 7 alors il fera le blabla1 (rien n'interdire que d'autres variables valent aussi 7 bien entendu)
0
weak007 Messages postés 10 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
5 juil. 2005 à 13:50
effectivement c'est beaucoup plus court merci beaucoup.

Si t'as encore un peu de temps a m'accorder je te poserai bien une autre question, sinon je la mettrai directement sur le forum.
J'ai une interface, qui theoriquement devrait me permettre d'afficher des resultats de calculs dans un edittext grace a :

set(handles.Hglass,'string,Hglass)

mes calculs necessitent un load 'opk' et un load 'wdow' (2matrices)
Or des que j'insere ces load dans le script, matlab me dit:
non existant field 'Hglass'
il y a t il un moyen une fois les calculs termine, de decharger les variables pour me permettre d'atteindre le handle Hglass et d'afficher mon resultats??
(ou un moyen d'eviter les loads??)
encore merci, et si t'es pas competent la dessus je mettrais tout ca dans le forum...
0
re-salut

je ne connais pas la commande set.
Quant aux load et save, je te propose la syntaxe suivante :

tes caluls ici
save nom_du_fichier var1 var2 var3

(si tu fais simplement save nom_du_fichier Matlab sauvegarde toutes les variables dans le fichier)

puis tu peux faire un load('nom_du_fichier.mat')
et c'est gagné

mais je ne connais rien quant au set(handles.Hglass,'string,Hglass)
0
weak007 Messages postés 10 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
5 juil. 2005 à 15:51
je vais essayer comme ca peut etre que l'erreur provient simplement de ma maniere de sauver les donnees, merci beaucoup!
a la prochaine
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok, bonne continuation
0
bibicha_01 Messages postés 17 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 31 juillet 2007
27 déc. 2006 à 19:20
salut tous le monde;

j'ai une demande s'il vous plait: qui peut m'aider a resourde ce problem.
je veut bien lire une image JPEG en Matlab de 100*100 Pixel et je sait pas comment (je doit ecrire koi et ou);
ensuite de la redoubler de 100*100 pixel a 200*200 pixel est tous ca avec matlab .

je sait pas comment ,aidez moi s'il vous plait
0
Salut le ou est | et le et est & sour Matlab 7

si x=7 ou y=7 => if( (x==7) | (y==7) )

if x=7 et y=7 => if( (x==7) & (y==7) )
-1
weak007 Messages postés 10 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
5 juil. 2005 à 10:01
merci mais ce que je voulais savoir,(ma question est mal posee)

c'est justement ce que me renvoie matlab quand je pose
x|y|z==7,
le 'ou' sur plusieurs variables signifie-t- il que seulement l'une de ces variables doit etre egale a 7, et dans le cas ou 2 des variables sont egale a 7 il me renvoie un message d'erreur???
merci
0
pom > weak007 Messages postés 10 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
5 juil. 2005 à 11:02
Salut, il y a le ou exclusif et le ou inclusif.

Regarde la doc sur "xor" et "or"

mais je n'ai pas bien compris (je dois être long à comprendre) : tu veux faire un test si x ou y (mais pas les 2) valent 7 ou si x ou y (ou les 2) valent 7 ?
0