A menos que haya una necesidad apremiante de hacer esto, probablemente desaconsejaría. La claridad de tu código sufrirá. Almacenar las salidas en variables temporales y luego pasar estas variables a otra función hará que su código sea más limpio, y las diferentes maneras en que puede hacer esto se describen aquí: How to elegantly ignore some return values of a MATLAB function?.
Sin embargo, si realmente quiere o necesita hacer esto, la única manera factible que se me ocurre sería la creación de su propia función secondreturnvalue
. He aquí un ejemplo más general llamado nth_output
:
function value = nth_output(N,fcn,varargin)
[value{1:N}] = fcn(varargin{:});
value = value{N};
end
Y lo llamaría al pasar como entradas 1) el número argumento de salida que desee, 2) un function handle a myfunc
, y 3) cualquier argumento de entrada que necesita para pasar a myfunc
:
abs(nth_output(2,@myfunc,x))
¿Qué ocurre con el uso de una clase en lugar de una función con los métodos 'getter' correspondientes. Puede obtener algo como abs (myfunc.secondReturnValue (x)). – zellus
Subiendo como una solicitud de pseudo-función a MathWorks. –