calling of functions and subfunctions
5 次查看(过去 30 天)
显示 更早的评论
hi guys i am trying to make a switch case . however, the code i have involves a function calling other functions and so i cant create the switch. (when i create the switch and remove the function title for the subfunction, the main function cant run the case. for example:
function main
for ...
Y = EulerODE(tspan, Init,dt, Repressor, Vm(i), Kx(i));
...
...
...
...
end
...
...
Y = EulerODE2(tspan, Init,dt);
...
end
%subfunction 1
function Y = EulerODE(tspan,init,dt,Repressor,Vm,Kx)
...
end
%subfunction 2
function Y = EulerODE2(tspan,init,dt)
end
4 个评论
per isakson
2019-11-12
Is there an error message? If so show us the full error message.
I assume that your problem isn't caused by the switch-statement. What happens if you comment out the switch-statement?
"and memove the function title for the subfunction" what exactly does that mean?
采纳的回答
Cam Salzberger
2019-11-12
Hey Geoffrey,
Which version of MATLAB are you using? If you remove the main "function" declaration, it will consider the file to be a script. Local functions in scripts only started being supported in R2016b, so if you have a version earlier than that, then MATLAB will error. If you would prefer to use a script, you'll need to make separate function files for each of your local functions.
-Cam
2 个评论
Walter Roberson
2019-11-13
You are correct that functions cannot be defined inside control statements such as switch or if.
You can move all of the nested function definitions to just inside the "end" statement of the function.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!