Is it possible to call a subfunction inside a function mscript?
18 ビュー (過去 30 日間)
古いコメントを表示
Is it possible to call a subfunction inside a mscript function and get the returned value?
e.g., the content of 'func.m' as below
function b = func(a)
b = subfunc(a) +1;
function c = subfunc(a)
c = a*2;
Can I call subfunc directly in the matlab workspace.
3 件のコメント
Stephen23
2015 年 2 月 18 日
編集済み: Stephen23
2018 年 2 月 17 日
MATLAB does not mention "subfunctions". Other functions in the same Mfile are either local functions or nested functions.
"I wanna if I can excute the SubFunc function in 'Func.m' directly": lets look at the two possible cases for this:
- If Func is the main function on that Mfile, then it can call any local function in the same Mfile.
- If Func is a script then from version R2016b you can add local functions. With earlier versions doing so will throw an error.
採用された回答
Thorsten
2015 年 2 月 16 日
No. You have to create a separate mfile that can be called by your mscript.
0 件のコメント
その他の回答 (2 件)
Jan
2017 年 1 月 25 日
You can do this by a wrapper:
function Fcn = main
Fcn.func = @func;
Fcn.subfunc = @subfunc;
function b = func(a)
b = subfunc(a) +1;
function c = subfunc(a)
c = a*2;
Now you can call from the outside:
Fcn = main();
Fcn.func(1)
Fcn.subfunc(2)
0 件のコメント
Adam
2015 年 2 月 16 日
編集済み: Adam
2015 年 2 月 18 日
You can call a sub-function from a main function in an m-file.
You cannot call a sub-function from a script (what would the function be 'sub' of?!). If you need to then just turn your script into a function.
Edit: In response to your edited question, then Yes, what you are doing is creating a function file and then within it defining subfunctions which are only accessible to the main function of that file.
This does seem like a question that you could have got the answer to yourself instantly though by simply putting that code in a file and running it!
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!