Я пытаюсь построить ползунок для моей переменной z в Matlab, используя следующий пример: https://www.mathworks.com/help/control/ug/build-app-with-interactive-plot-updates.html.
Это код, который у меня есть:
z = 0; % change from z = 0 to z = 10
t = -50:1:50; % time
beta = -20; % group velocity dispersion (GVD) parameter
R = 40; % signal bit rate
T_FWHM = R^-1; % full width at half maximum (FWHM) pulse width
T_0 = T_FWHM/1.665; % initial pulse width
L_D = T_0^2/abs(beta); % dispersion length
P_0 = 250*10^-3; % initial optical power
T_z = ((1+(z/L_D)^2))^0.5*T_0; % pulse width dependent on location z
E_z_t = P_0^0.5*exp(-(t.^2/2*T_z)); % electric field profile
f = figure(1);
plot(t, E_z_t)
title('Gaussian Shaped Pulse')
xlabel('Time (ps)')
ylabel('Optical Power (W)')
b = uicontrol('Parent',f,'Style','slider','Position',[81,54,419,23],...
'value',z, 'min',0, 'max',1);
bgcolor = f.Color;
bl1 = uicontrol('Parent',f,'Style','text','Position',[50,54,23,23],...
'String','0','BackgroundColor',bgcolor);
bl2 = uicontrol('Parent',f,'Style','text','Position',[500,54,23,23],...
'String','1','BackgroundColor',bgcolor);
bl3 = uicontrol('Parent',f,'Style','text','Position',[240,25,100,23],...
'String','Location z','BackgroundColor',bgcolor);
b.Callback = @(es,ed) updateSystem(t,((1+(es.Value/L_D)^2))^0.5*T_0);
Я пытаюсь изменить график, когда переменная z изменяется с 0 на 10 с помощью ползунка. Это затем обновит мою переменную T_z, которая затем обновит E_z_t, который отображается в зависимости от переменной t (время).
Однако у меня возникают ошибки с функцией updateSystem.