Bonjour,
Mon problème est: comment comparer deux function_handles.
L'un est enregistré dans ue variable et l'autre est livré tel quel
à la fonction de comparaison (isequal par exemple)
Voilà le code que j'ai inscrit dans une fonction.
Mon but est de faire marcher le code après la condition "if". tout le code
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
19
20
21
22
23
24 %Pointer1 est un pointeur de fonction, qui a été initialisé par une fonction %externe: getValue. %Ce pointeur doit s'appeler normalement % très précisemment: %@functionOfPOinter1 if (isequal(Pointer1,@functionOfPointer1)) <div style="margin-left:40px">%... texte</div>else %si l'égalité n'est pas vérifiée, afficher les valeurs mises en jeu <div style="margin-left:40px">disp(' the pointer1 is equal to'); %la valeur telle qu'elle a du être initialisée(on sait jamais, % la fonction peut être mal ficelée getValue('pointer1') %encore, je vérifie que j'ai bien attribué un function_handle disp(' the pointer1 is a function handle, yes or no:'); isa(pointer1,'function_handle') %là, encore, vérification disp(' @functionOfPointer1 is a function handle, yes or no:'); isa(@functionOfPointer1,'function_handle') %Maintenant, déterminr à nouveau si le deux pointeurs sont égaux disp('isequal(pointer1,@functionOfPointer1) is equal to ' ); isequal(pointer1,@functionOfPointer1)</div>end
dans la boucle "else" devait m'aider à comprendre pourquoi la condition
du "if"n'est pas vérifiée.
Voici la réponse de Matlab
Ma question est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 the pointer1 is equal to ans = @functionOfPointer1 the pointer1 is a function handle, yes or no: ans = 1 @functionOfPointer1 is a function handle, yes or no: ans = 1 isequal(pointer1,@functionOfPointer1) is equal to ans = 0
comment comparer deux function_handles?? si la fonction isequal ne marche pas,
je vois pas.
Par ailleurs, est-ce que ca plante à cause d'une erreur bête que je n'ai pas vue?
merci d'avance
adriano
Partager