When is output assigned from function?

I want to understand how functions output the output variable.
For instance, I have the function below.
function A = myfun(X)
len = length(X)
A = zeros(len,1); %preallocate
for ind = 1:len
A = X(1:ind) * X(ind:end) %some operation
end
end
In a script, I call B = myfun(Y)
Does B get updated in the script workspace every time something happens to A? Is there any issue with making multiple assignments to A, or is something like this better:
function A = myfun(X)
len = length(X);
temp_A = zeros(len,1); %preallocate
for ind = 1:len
temp_A = X(1:ind) * X(ind:end); %some operation
end
A = temp_A;
end
Thank you

Antworten (1)

Jan
Jan am 21 Apr. 2021
Bearbeitet: Jan am 21 Apr. 2021

0 Stimmen

Your first version is fine. When the function myfun() exists, the contents of A is replied as first output. The value of B is not accessed and not even existing during the function runs.
The temporary variable does not have any benefit in the 2nd version.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 21 Apr. 2021

Kommentiert:

am 21 Apr. 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by