How to insert a nested function by GUI in GUIDE?

2 views (last 30 days)
I use GUIDE to write a GUI to solve three consecutive differential equations. In the run button, I need to call three additional equation functions, but the three equations cannot be used as m files alone (because the parameters between the three equations are related to each other). Need to be placed as a nested function at the bottom of the gui m file, but the GUI does not seem to recognize the parameters inside the nested function, and use ‘n=str2double(get(handles.edit4,'string'))' , The command found that the input parameters could not be read. What should I do with this situation? Thank you
For example, here is an equation function script for me. In this function, I need to call the result of the previous equation as a parameter and not as an external independent function. Therefore, I can only handle it as a nested function. ,so how can i do it ?
function du=Castor_Collision_2(t,u)
R=handles.R; %bold starting here
h=handles.h;
E2=handles.E2;
v2=handles.v2;
rho2=handles.rho2;
E=handles.E;
H1=handles.H1;
H2=handles.H2;
m=handles.m;
n=handles.n;
M=handles.M;
uy=handles.uy;
up=handles.up; %bold ending here
mu=(m-1)*(u(1)-uy)/(up-uy);
mp=(m-1)/(up-uy);
phi1=sech(mu);
phi2=1-phi1;
phi3=tanh(mu);
H=H1*H2/(2*(H1+H2)); % Kogut模型
alpha=(sqrt(3*(1-v2^2)./(rho2*E2)))./(4*h^2);
g=9.8;
p0=H*g;
a=sqrt(R.*u(1));
ap=(3*pi*p0*R)/(4*E);
K2=E*a;
Fmix=phi1*K2*u(1).^n+phi2*p0*pi*(a.^m./(ap^(m-2)));
du=[u(2);alpha*(phi1*phi3*mp*K2*u(1).^n - phi1*K2*n.*u(1).^(n-1) - ...
phi1*phi3*mp*p0*pi*a^m/ap^(m-2) - phi2*p0*pi*R*m*a^(m-1)/(2*a*ap^(m-2)))*u(2)-(Fmix/M)];
end

Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!