Попытка построить слайдер в Matlab для значений z - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь построить ползунок для моей переменной 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...