Wie erzwinge ich, dass MATLAB alle Werte in einem verschachtelten Funktionsaufruf zurückgibt?

Ich finde es unmöglich, MATLAB-Code zu schreiben, ohne eine große Anzahl überflüssiger Einwegvariablen zu erstellen.

ehmen wir zum Beispiel die Funktion @ afoo gibt drei Spaltenvektoren mit genau derselben Größe zurück. Sagen

function [a, b, c] = foo(n)
    a = rand(n, 1);
    b = rand(n, 1);
    c = rand(n, 1);
end

Nun, nimm an, dassbar ist eine Funktion, die als Eingabe ein Zellenarray der Größe @ erwarte(1, 3).

function result = bar(triplet)
    [x, y, z] = triplet{:};
    result = x + y + z;
end

Wenn ich die Ergebnisse von @ weitergeben möchfoo(5), Ich kann es tun, indem ich drei ansonsten nutzlose Variablen erstelle:

[x, y, z] = foo(5);
result = bar({x, y, z});

Gibt es eine Funktionbaz das würde mir erlauben, die beiden obigen Zeilen durch @ zu ersetz

result = bar(baz(foo(5)));

?

NB: die Funktionenfoo undbar oben sind nur als Beispiele gedacht. Sie sollen Funktionen darstellen, über die ich keine Kontrolle habe. IOW, Änderungen sind keine Option.