Exit function early and return output

380 ビュー (過去 30 日間)
Toder
Toder 2020 年 4 月 23 日
コメント済み: Toder 2020 年 4 月 24 日
I have a rather long function with a single output. In a special case, the output can be calculated without executing the majority of the function. Currently I use an if-statement to bypass the remaining code in the special case, but it feels clumsy to have an if-statment around lots of code. In C++, one could avoid the if-statement with two return statements; however the return function in MATLAB exits the function without returning the output variable. Is there a similar trick in MATLAB to avoid nesting the majority of my function in an if-statement? I know I could use another function to execute the else-statement, but that seems just as awkward.
% CURRENT CODE
function out = myfunc(a,b,c)
% Some calculations
if a == 1 % Special case
out = foo;
else
% Lots of calculations
out = bar;
end
end
% "IDEAL" CODE WHICH DOESN'T WORK
function out = myfunc(a,b,c)
% Some calculations
if a == 1 % Special case
return foo
end
% Lots of calculations
return bar
end

採用された回答

Walter Roberson
Walter Roberson 2020 年 4 月 24 日
Assign the desired value to the output variable. Then use return
  1 件のコメント
Toder
Toder 2020 年 4 月 24 日
Thanks, Walter. Much more elegant than a huge else statement!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by