尝试在Matlab中为z值构建一个滑块

尝试在Matlab中为z值构建一个滑块,matlab,Matlab,我试图使用以下示例在Matlab中为我的z变量构建一个滑块: 这是我的代码: z=0;%从z=0更改为z=10 t=-50:1:50;%时间 β=-20;%群速度色散(GVD)参数 R=40;%信号比特率 T_FWHM=R^-1;%半最大(FWHM)脉冲宽度时的全宽 T_0=T_半高宽/1.665;%初始脉冲宽度 L_D=T_0^2/abs(β);%色散长度 P_0=250*10^-3;%初始光功率 T_z=((1+(z/L_D)^2))^0.5*T_0;%脉冲宽度取决于位置z E_z_t=P_

我试图使用以下示例在Matlab中为我的z变量构建一个滑块:

这是我的代码:

z=0;%从z=0更改为z=10
t=-50:1:50;%时间
β=-20;%群速度色散(GVD)参数
R=40;%信号比特率
T_FWHM=R^-1;%半最大(FWHM)脉冲宽度时的全宽
T_0=T_半高宽/1.665;%初始脉冲宽度
L_D=T_0^2/abs(β);%色散长度
P_0=250*10^-3;%初始光功率
T_z=((1+(z/L_D)^2))^0.5*T_0;%脉冲宽度取决于位置z
E_z_t=P_0^0.5*exp(-t.^2/2*t_z));%电场分布
f=图(1);
绘图(t,E_z_t)
标题(“高斯形脉冲”)
xlabel(‘时间(ps)’)
ylabel('光功率(W)')
b=uicontrol('Parent',f','Style','slider','Position',[81,54419,23],。。。
“值”,z,“最小值”,0,“最大值”,1);
bgcolor=f.颜色;
bl1=uicontrol('Parent',f,'Style','text','Position',[50,54,23,23],。。。
'字符串','0','BackgroundColor',bgcolor);
bl2=uicontrol('Parent',f,'Style','text','Position',[500,54,23,23],。。。
'字符串','1','背景色',背景色);
bl3=uicontrol('Parent',f','Style','text','Position',[240,25100,23],。。。
'字符串','位置z','背景色',背景色);
b、 回调=@(es,ed)更新系统(t,((1+(es.Value/L_D)^2))^0.5*t_0);
当使用滑块将变量z从0更改为10时,我尝试重塑图形。然后,这将更新我的变量T_z,它将更新绘制的E_z_T与变量T(时间)


但是,我在使用updateSystem函数时遇到了错误

你能显示你得到的确切错误吗?你刚刚复制粘贴了上面链接中给出的示例
updateSystem
可以更新动态系统,而不是
plot()
。首先需要检索绘图的句柄:
h=plot(x,y)
,然后在滑块中添加回调函数:
b=uicontrol(…,…,'callback',@myupdatefunction)
,最后创建一个小函数
myupdatefunction()
,将新值设置为
h.Ydata
,类似于
set(h.Ydata,mynewdata)