Matlab GUI 调用函数后如何设置图形句柄?

我的程序如下:clfresetA1=0;A2=0;f1=0;f2=0;H=axes('unit','normalized','position',[0,0,1,1],'v... 我的程序如下:

clf reset
A1=0; A2=0; f1=0; f2=0;
H=axes('unit','normalized','position',[0,0,1,1],'visible','off');
set(gcf,'currentaxes',H);
str='\fontname{隶书}View Sine Wave';
text(0.12,0.93,str,'fontsize',13);
h_fig=get(H,'parent');
set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]);
h_axes=axes('parent',h_fig,...
'unit','normalized','position',[0.1,0.15,0.55,0.7],...
'xlim',[0 15],'ylim',[0 1.8],'fontsize',8);
%因字数太多,中间略去一部分。
h_push=uicontrol(h_fig,'style','push',...
'unit','normalized','position',[0.67,0.03,0.125,0.1],...
'string','start',...
'callback','adl1(A1,f1,A2,f2)'...
);

function[]=adl(A1,f1,A2,f2)
t=0:1/1024:1-1/1024;
u1=A1*sin(2*f1*pi*t);
u2=A2*sin(2*f2*pi*t);
subplot(2,1,1);
plot(u1);
subplot(2, 1, 2),
plot(t, u2);

运行的时候,未调用函数时图形是这样的:

但是调用函数后,图形就是:

请高手说说,函数里要如何设定句柄才使它的图像不要那么宽呢?
展开
 我来答
cholla_matlab
2013-06-17 · TA获得超过391个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:183万
展开全部
subplot(2,1,1); 是把整个figure分成两行一列,然后在其第一行这个区域画图的,所以会铺满

subplot('Position',[left bottom width height]) %先设定好区域
plot(u1); %再画图,就可以了
追问
首先,要说对不起,上面函数的名字是adl1,因为不小心,弄错了。
其次,我发现在函数里加语句
subplot('Position',[left bottom width height]);
基本没有用,因为我试着改了这几个值,但出来的图没有变化啊。
追答
不是加,是替换subplot(2,1,1); 和subplot(2,1,2);这两个;
换成 subplot('Position',[0.1,0.55,0.55,0.3]); 和 subplot('Position',[0.1,0.15,0.55,0.3]);

还有一个办法,就是先画好两个axes,然后把图分别画在两个坐标中。
subplot(h_axes1); plot(u1);
subplot(h_axes2); plot(t, u2);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式