Je me suis retrouvé à essayer d'interfacer une classe personnalisée avec des fonctions intégrées, et j'ai rencontré une situation que je ne pouvais résoudre qu'avec eval, je voudrais une manière «plus propre».Numéro de sortie de la variable d'appel de fonction
Fondamentalement, la fonction intégrée est définie comme varargout=blabla(varargin)
J'ai défini une fonction surchargée dans la classe personnalisée, comme varargout=blabla(varargin)
. La fonction ressemble:
function varargout=blabla(varargin)
varargout=blabla(function_of_varargin)
end
La fonction de varargin
il se transforme de la classe personnalisée aux clas BUILTIN. Mais cela ne fonctionne pas tel quel: En principe, lorsque la fonction interne est appelée dans la fonction override, elle ne voit qu'un seul paramètre de sortie (varargout
), même si la fonction de remplacement personnalisé est appelée avec plus d'un paramètre de sortie .
Je l'ai résolu en appelant essentiellement ceci:
[varargout{1},varargout{2},...,varargout{nargout}]=blabla(function_of_varargin)
La construction du LHS avec une boucle et eval-ing.
regardez [Comment surcharger les fonctions MATLAB intégrées?] (Http://www.mathworks.nl/support/solutions/fr/data/1-18T0R/index.html?product=ML&solution= 1-18T0R) –