注册 登录
编程论坛 Matlab

谁能解释一下下面的程序?就是设置个坐标系,怎么这么复杂?

liuhaixiao 发布于 2007-01-11 12:49, 898 次点击
clf reset
H=axes('unit','normalized','position',[0,0,1,1],'visible','off');
set(gcf,'currentaxes',H);
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);
3 回复
#2
zhangenter2007-01-12 22:14
clf reset % 清除界面
H=axes('unit','normalized','position',[0,0,1,1],'visible','off'); % 画一个和界面一样大的坐标轴保存为变量H,不可见
set(gcf,'currentaxes',H); % 设置当前界面的当前轴为H
h_fig=get(H,'parent'); % 得到H的父句柄,即当前界面(gcf),保存为变量h_fig
set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]);
% 把界面拉到靠左0.1,靠下0.2,宽0.7,高0.4(都是相对于屏幕的比例因为父句柄是屏幕,最大是1,因为unit是normalized)
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);
% 以界面为父句柄画一个轴,位置比例左0.1,靠下0.15,宽0.55,高0.7(都是相对界面的比例,因为父句柄是界面),
% X轴的界限是0到15,Y轴的界限是0到1.8,字体大小8


其实实际中用不着这么复杂的,是写这段代码的人不厚道,生怕自己写的被初学者看懂了
#3
liuhaixiao2007-01-13 19:11
谢谢版主!
一直没能控制画图坐标,有时以为解决了,但运行的时候又出问题。烦躁时以为是matlab本身的问题,细想是自己没有掌握要领。糟糕的是找不到一本详述这方面的书。版主能推荐一本吗?
#4
zhangenter2007-01-13 19:48

多看帮助吧,帮助里对每个属性都有说明

1