Wenn es keine dringende Notwendigkeit gibt, dies zu tun, würde ich wahrscheinlich davon abraten. Die Klarheit Ihres Codes wird leiden. Das Speichern der Ausgaben in temporären Variablen und das anschließende Übergeben dieser Variablen an eine andere Funktion wird Ihren Code sauberer machen, und die verschiedenen Möglichkeiten, die Sie dazu tun können, finden Sie hier: How to elegantly ignore some return values of a MATLAB function?.
Wenn Sie jedoch wirklich wollen oder müssen, um dies zu tun, wäre die einzige mögliche Weise, die ich denken könnte, um Ihre eigene Funktion secondreturnvalue
zu erstellen. Hier ist ein allgemeineres Beispiel nth_output
genannt:
function value = nth_output(N,fcn,varargin)
[value{1:N}] = fcn(varargin{:});
value = value{N};
end
Und Sie würden es nennen, indem man als Eingänge 1) die Ausgabeargument Nummer, die Sie wünschen, 2) eine function handle zu myfunc
und 3), was Eingabeargumente müssen Sie passieren zu myfunc
:
abs(nth_output(2,@myfunc,x))
Was ist mit der Verwendung einer Klasse anstelle einer Funktion mit entsprechenden "Getter" -Methoden. Sie könnten etwas wie abs (myfunc.secondReturnValue (x)) bekommen. – zellus
Aktualisiere dies als Pseudo-Feature-Anfrage an MathWorks. –