首页 > 解决方案 > 试图在 Matlab 中为值 z 构建一个滑块

问题描述

我正在尝试使用以下示例在 Matlab 中为我的 z 变量构建一个滑块: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 函数时遇到了错误。

标签: matlab

解决方案


推荐阅读