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

[Résolu/Fermé]
Signaler
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005
-
Messages postés
17
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
31 juillet 2007
-
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

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
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005

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
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)
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005

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...
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)
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005

je vais essayer comme ca peut etre que l'erreur provient simplement de ma maniere de sauver les donnees, merci beaucoup!
a la prochaine
ok, bonne continuation
Messages postés
17
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
31 juillet 2007

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
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) )
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005

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
>
Messages postés
10
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
11 juillet 2005

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 ?