MATLAB: как получить доступ к n-му выводу функции из другой функции

Если у меня есть функция:

function [out1,out2,...] = functionName[in1,in2]
function code here
end

И еще одна функция

function[newout1,newout2] = newfunctionName[in1,in2]
[newout1]=out1+out2;
[newout2]=out2+out3;

Как я могу вызвать различные выходы, out1, out2, out3 и т. Д...

1 ответ

Я не очень хорошо понимаю, что вы имели в виду под "вызовом различных выходов, out1, out2, out3 и т. Д.", Но чтобы ответить на вопрос заголовка,

Чтобы получить доступ к n- му выводу любой функции, вы должны сначала вызвать nargout для имени этой функции, а затем вставить ее вывод в ячейку предварительно выделенного размера. Пример кода ниже,

n = 5;
nout = abs(nargout('functionName'));
if n>nout
    error(['n must be lower or equal than ',num2str(nout)])
end
out = cell(1,n);
[out{:}] = functionName(in1,in2);
nth_output = out{n};

Это может быть сделано внутри любой функции, которая имеет functionName на своем пути.

Другие вопросы по тегам