画图函数句柄的使用
- 每个画图函数含有的输入参数是很多的,然而我们在看函数的帮助help的时候,所能得到的只是一些基本的信息。我们利用:’dd = function_name(x,y,z,…);dt = get(dd)’ dt就含有了这个函数的全部使用信息。
从句柄中获取、修改信息
- 有时为了需要,我们需要对所得的图像进行编辑,如加入题注、字体修改、改动线型以及坐标轴范围的改动等。另外从图像上也可以获得一些信息,如数据等。使用句柄可以完成上面的要求。然而句柄的缺点就是处理少数的图形时,它花费的时间要长一些。在处理大量的图形的时候,就可以显示出它的方便了。
- 一些常用的句柄
- gcf —— 当前图形(figure)的句柄
- gca —— 当前坐标轴(axes)的句柄
- gco —— 当前对象(object)的句柄
双Y轴曲线的绘制
x = 0:.1:2*pi;
[H,Ha,Hb] = plotyy(x,sin(x),x,exp(x));
legend([Ha,Hb],'sin(x)','exp(x)',0);//图例
set(Ha,'linestyle',':');
d1 = get(H(1),'ylabe');
set(d1,'string','sin(x)');
d2 = get(H(2),'ylabel');
set(d2,'string','exp(x)')
xlabel('x zhou')
绘制图上图
有时为了需要,需要在图上画图,可能是为了局部放大,或其他目的,看如下这段程序:
figure;
t = 0:.1:2*pi;
y = sin(x) + exp(t);
plot(t,y,'--');
title('绘制底图');
axes('position',[0.25,0.45,0.4,0.3]);
plot(t,sin(t),'r',t,cos(t),'g-.');
title('绘制图上图','fontName','楷体_GB2312',...'fontsize',20,'color','Magenta');
xlim([0 2*pi]);
多子图的绘制
- 有时为了比较,需要将几幅图形以阵列的形式画出来,这时就要用到subplot函数。这时一个2x2图形阵列的分布绘制的小程序:
t = linspace(0,2*pi,200);
figure;
subplot(221);plot(t,sin(t));
subplot(222);plot(t,cos(t));
subplot(223);plot(t,tan(t));
subplot(224);plot(t,cot(t));
- 当有时候是一行两幅图,而第二行是一幅图的时候就要变通使用subplot了,如
x = linspace(0,2*pi,200);
figure;
subplot(221);plot(x,sin(x));
subplot(222);plot(x,cos(x));
subplot(211);plot(x,tan(x));
- 图片自动保存 ‘h = figure; saveas(h,’figure_name’,’eps’);’
坐标轴方向的修改
%如何把原点移动到左上角、无背景色
close all
t = 0:.1:1.2;
figure;
hg = plot(t,t.^2,'r');
set(hg,'Marker','h');
set(gca,'YDir','reverse');
set(gca,'XAxisLocation','top');
set(gca,'box','off');
set(gca,'color','none');
po = [0.13,0.06,0.775,0.815];
set(gca,'position',po);
tz=text(0.8,0.3,'y=x^2');
set(tz,'fontsize',18);
xlabel('x','fontsize',18);
ylabel('y','fontsize',18);
坐标值的修改
有时为了需要,对画出的曲线需要修改坐标轴的坐标,下面列举一下几种情况:
- 除去刻度 ‘A = cell(1,6);set(gca,’YTickLabel’,A);set(gca,’XTickLabe’,A);
放大所画的图形
- Matlab 所画的图形是其默认大小的,我们也可以对图形的大小进行重新设定:
set(gcf,'position',[x0 y0 xL yL]);
set(gcf,'outerposition',get(0,'screensize'));%最大化
- 改变图形的长宽比例
‘set(gca,’position’,[x0,y0,xL,yL]);
- 坐标轴标注的角度调整
‘a = xlabel(‘bbs.hit.edu.cn’);set(a,’Rotation’,35);
曲线拟合
相关函数:
- polyfit; %多项式拟合
- lsline; %最小二乘拟合曲线
- fit
Matlab的动画功能
fig = figure;
mov = avifile('exampleb.avi');
x = linspace(0,10,256);len = length(x);
y = 5*sin(x) + 3*randn(1,len);
h = line('color','y','LineWidth',2,'erasemode','xor');
for i = 1:200
axis([0,10,-15,15]);
set(h,'xdata',x,'ydata',y);
set(gca,'Color','b');drawnow;
grid on;
pause(0.01);
y = [y 5*sin(10+i*x(2)) + 3*randn(1)];
y = y(2:len+1);
title('模拟心电图');
F = getframe(gcf);
mov = addframe(mov,F);
end
mov = close(mov);
Matlab IDE 切换窗口快捷键
- 在Editor中各个窗口之间的切换:Ctrl+pageup
- 在IDE中各个窗口之间的切换:ctrl+Tab 实现IDE中的各个窗口轮流切换;Ctrl+0(1,2,3)切换到特定窗口;ctrl+shift+0 切换到editor窗口