登录论坛

查看完整版本 : [MATLAB GUI] 帮忙做一个GUI图形演示窗口


qianxq2005
2009-05-23, 17:10
具体是将下面两段程序仿真出的图形在上,下两个窗口中显示,上面显示程序1的图,下面显示程序2的图,用一个“开始”和一个“停止”命令控制其播放
程序1:Rh=2;
I=10*sin(pi/2);
mu0=4*pi*1e-7;
C=mu0/(4*pi)*I;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
m=moviein(180);
for C=1:180
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C*dlXr_x./r3);
By(i,j)=sum(C*dlXr_y./r3);
end
end
clf;plot(y,By);
m(:,C)=getframe
pause(0.2)
end
movie(m,1)
程序2:s=0.2; x1=0; % 确定起始点横坐标x1及其增量
nframes = 180; % 确定动画总帧数
for k = 1:180
x1=x1+s; % 确定画图时横坐标终止值x1
x2=0:0.01:x1; y2=sin(x2);
plot(x2,y2); % 在x=[0 x1]作y=sin(x)曲线
axis([0 2*pi -1 1]) % 定义坐标轴范围
grid off % 不显示网格线
M(k)=getframe; % 将当前图形存入矩阵M(k)
end
pause(0.02)
movie(M,3) % 重复3次播放动画M

xsprinkle
2009-05-23, 20:41
我对这类问题也很疑惑,我只能做显示一张图的,也就是用一个AXIS 窗口显示。
为什么做好GUI后,没有axis的 CALLBACKE函数?也就是没办法指定在某个axis中显示了。

急切盼望指点迷津。。。。

大学生
2009-05-24, 20:14
是这个样子吗?(为啥必须要10个字才能回复?)

ft8023
2009-05-25, 11:12
各位谁有虚拟示波器的界面,,基于MATLAB和声卡的。。。非常急,,只需界面核心部分。。非常感激。、。酬谢

xsprinkle
2009-05-25, 20:01
是这个样子吗?(为啥必须要10个字才能回复?)

怎么在一个有多个axes的GUI中,指定plot绘图的区域
我找不到axes 得callback 函数,没办法指定绘图的地方。

大学生
2009-05-25, 22:37
利用axes对象的句柄操作就可以了

xsprinkle
2009-05-29, 09:33
利用axes对象的句柄操作就可以了

怎么用AXES的句柄,麻烦举例看看
比如说我有 handles_axes1和handles_axes2

我要在AXES1 中 绘图
geh=handles_axes1 ??

如是?恳求指点
谢谢

和平时代
2009-05-30, 19:12
怎么用AXES的句柄,麻烦举例看看
比如说我有 handles_axes1和handles_axes2

我要在AXES1 中 绘图
geh=handles_axes1 ??

如是?恳求指点
谢谢
大概这样吧:
axes(handles.handles_axes1);
plot( , );

xsprinkle
2009-06-05, 21:12
大概这样吧:
axes(handles.handles_axes1);
plot( , );

Reference to non-existent field 'handles_axes1'.

生成的GUI 程序没有 handles_axes1这个句柄。。。
我的疑惑就是在 figure 中有 axes1和axes2,为什么在M文件中没有对应的callback函数?
请望指教

kiwipie
2009-08-17, 17:49
cla(handles.axes1)