On a vu dans l’article précédent qu’evalc est utile pour enlever le verbose : disp, fprintf …
Maintenant si on veut compiler son code qui utilise evalc avec le MATLAB Compiler , il est nécéssaire de rajouter le pragma %#function
Comme expliqué dans la doc %#function
The %#function pragma informs MATLAB Compiler that the specified function(s) will be called through an feval, eval, or Handle Graphics callback.
Ok evalc n’est pas cité mais pourtant il faut le faire!
Si on veut compiler ma fonction bidon matlab4geek (du billet précédent) par exemple , on pourrait ecrire une fonction parent :
puis la compiler
en essayant de l’executer:
on va avoir le message d’erreur :
Error using evalc
Undefined function ‘matlab4geek’ for input arguments of type ‘double’.Error in test (line 3)
Donc en effet le MATLAB Compiler n’a pas compris lors de la compilation que la chaine de caractère matlab4geek était une fonction à embarquer.
La solution est donc :
de rajouter sous le nom de la fonction %#function matlab4geek
Sur ce bon week-end à tous les Matlab geek!