Is it possible to call a subfunction inside a function mscript?
28 次查看(过去 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!