下面是我仿写的每次输入数值后都提醒Num1--Num5没有定义
hFigure2 = figure('Name', '光学拍实验',...
'Menubar', 'none',...
'Position', [250 80 800 600],...
'NumberTitle', 'off');
hAxes2 = axes('Units','Pixels',...
'ydir','reverse',...
'Position',[50 350 250 200]);
hAxes3 = axes('Units','Pixels',...
'ydir','reverse',...
'Position',[50 20 700 250]);
hAxes4 = axes('Units','Pixels',...
'ydir','reverse',...
'Position',[350 350 250 200]);
set(get(hAxes2, 'title'), 'string', '输入波形图');
set(get(hAxes3, 'title'), 'string', '光学拍实验现象');
set(get(hAxes4, 'title'), 'string', '光强分布图');
uicontrol('Style', 'text',...
'Position', [620 520 100 30],...
'Fontsize', 12,...
'string', '振幅E:');
Num1 = uicontrol('Parent',hFigure2,...
'Style', 'edit',...
'Units', 'pixels',...
'Position', [720 520 50 30],...
'Horiz', 'left',...
'Tag', 'DirectionPop',...
'Callback', 'NumStr = get(Num1, ''String''); a = str2num(NumStr);');
uicontrol('Style', 'text',...
'Position', [620 490 100 30],...
'Fontsize', 12,...
'string', '波1角频率w1:');
Num2 = uicontrol('Style', 'edit',...
'Units', 'pixels',...
'Position', [720 490 50 30],...
'Horiz', 'left',...
'Tag', 'DirectionPop',...
'Callback', ['NumStr = get(Num2, ''String'');',...
'w1 = str2num(NumStr)']);
uicontrol('Style', 'text',...
'Position', [620 460 100 30],...
'Fontsize', 12,...
'string', '波2角频率w2:');
Num3 = uicontrol('Style', 'edit',...
'Units', 'pixels',...
'Position', [720 460 50 30],...
'Horiz', 'left',...
'Tag', 'DirectionPop',...
'Callback', ['NumStr = get(Num3, ''String'');',...
'w2 = str2num(NumStr)']);
uicontrol('Style', 'text',...
'Position', [620 430 100 30],...
'Fontsize', 12,...
'string', '波1波数k1:');
Num4 = uicontrol('Style', 'edit',...
'Units', 'pixels',...
'Position', [720 430 50 30],...
'Horiz', 'left',...
'Tag', 'DirectionPop',...
'Callback', ['NumStr = get(Num4, ''String'');',...
'k1 = str2num(NumStr)']);
uicontrol('Style', 'text',...
'Position', [620 400 100 30],...
'Fontsize', 12,...
'string', '波2波数k2:');
Num5 = uicontrol('Style', 'edit',...
'Units', 'pixels',...
'Position', [720 400 50 30],...
'Horiz', 'left',...
'Tag', 'DirectionPop',...
'Callback', ['NumStr = get(Num5, ''String'');',...
'k2 = str2num(NumStr)']);
btnStart_Callback = ['t = 0.1 : 0.2 : 1.3;',...
'x = 0 : 0.001 : 5;',...
'E1 = a * cos(k1*x - w1*t(end));',...
'E2 = a * cos(k2*x - w2*t(end));',...
'plot(hAxes2,x,E1,''b'',x,E2,''r'');',...
'x = 0:0.001:20;',...
'k = 0;',...
'm2 = moviein(length(0.1:0.2:1.3));',...
'for t=0.1:0.2:1.3,',...
'k = k+1;',...
'A = 2*a*cos((k1-k2)/2*x-(w1-w2)/2*t);',...
'v = a*cos(k1*x -w1*t)+a*cos(k2*x-w2*t);',...
'plot(hAxes3,x,v,''k'',x,A,''g'',x,-A,''g'');',...
'm2(:,k) = getframe;',...
'end,',...
'x = 0:0.001:20;',...
'A = 2*a*cos((k1-k2)/2*x-(w1-w2)/2*t(end));',...
'I = A.*A;',...
'plot(hAxes4,x,I)'];
uicontrol('Position', [620 330 150 50],...
'Fontsize', 12,...
'string', '开始',...
'Callback', btnStart_Callback);
如果单独运行下面程序 是可以给a赋值的
Num1 = uicontrol('Parent',hFigure2,...
'Style', 'edit',...
'Units', 'pixels',...
'Position', [720 520 50 30],...
'Horiz', 'left',...
'Tag', 'DirectionPop',...
'Callback', 'NumStr = get(Num1, ''String''); a = str2num(NumStr);');