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

回答 (1 件)

Jan
Jan 2021 年 4 月 21 日
編集済み: Jan 2021 年 4 月 21 日

0 投票

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.

カテゴリ

ヘルプ センター および File Exchange で Language Fundamentals についてさらに検索

製品

質問済み:

2021 年 4 月 21 日

コメント済み:

2021 年 4 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by