Exit function early and return output

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 日

1 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

リリース

R2019b

質問済み:

2020 年 4 月 23 日

コメント済み:

2020 年 4 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by