第五次上机实习,Matlab绘图按要求完成下述练习
观察下述Matlab绘图命令的执行结果
1,plot指令:绘制直角坐标的二维曲线
clf; % 清除图形窗口
x=linspace(0,8*pi,100);
F=inline('sin(x+cos(x+sin(x)))'); %创建匿名函数
y1=F(x); % sin(x+cos(x+sin(x)));
y2=0.2*x+F(x) % 0.2x+sin(x+cos(x+sin(x)));
plot(x,y1,'k:',x,y2,'k-') legend('sin(x+cos(x+sin(x))','0.2x+sin(x+cos(x+sin(x)))',2)
2,图形的属性设置和屏幕控制
h=plot([0:0.1:2*pi],sin([0:0.1:2*pi])); grid on
set(h,'LineWidth',5,'color','red');
set(gca,'GridLineStyle','-','fontsize',16)
%设置y坐标的刻度并加以说明,并改变字体的大小。
h=plot([0:0.1:2*pi],sin([0:0.1:2*pi]));grid on,
set(gca,'ytick',[-1 -0.5 0 0.5 1]),
set(gca,'yticklabel','a|b|c|d|e'),
set(gca,'fontsize',20)
3,文字标注指令
plot(x,y1,'b',x,y2,'k-'),
set(gca,'fontsize',15,'fontname','times New Roman'),
%设置轴对象的字体为Times New Roman,字体的大小为15
title(' \it{Peroid and linear peroid function}');
%加标题,注意文字用单引号' ' 加上%斜杠'\'后可输入不同的设置,
%例如it{…}表示花括号里的文字为斜体;如果有多项设置,则可用\…\…\…连续输入。
xlabel('x from 0 to 8*pi it{t}\'); ylabel('\it{y}');
%说明坐标轴
text(x(49),y1(50)-0.4,'\fontsize{15}\bullet\leftarrowTheperiodfunction… {\itf(x)}');
%在坐标(x(49),y1(50)-0.4)处作文字说明,各项设置用"\"隔开。
%\fontsize{15}\bullet\leftarrow的意义依次是:\字体大小=15 \ 画圆点 \左箭头
text(x(14),y2(50)+1,'\fontsize{15}The linear period function {\itg(x)}… \rightarrow\bullet')
%与上一语句类似,用右箭头

图2.5 文字标注
4,观察指令legend和num2str的用法:在同一张图上画出
,
并进行适当的标注。
zxy2_2.m
clf,
t=0:0.1:3*pi;
alpha=0:0.1:3*pi;
plot(t,sin(t),'r-');hold on; plot(alpha,3*exp(-0.5*alpha),'k:');
set(gca,'fontsize',15,'fontname','times New Roman'),
xlabel('\it{t(deg)}');ylabel('\it{magnitude}');
title(' \it{sine wave and {\it{Ae}}^{-\alpha{\itt}}wave}');
%注意\alpha的意义
text(6,sin(6),'\fontsize{15}The Value \it{sin(t)} at {\itt}=6\rightarrow\bullet',… 'HorizontalAlignment','right'),
%上面的语句是一整行,如果要写成两行,必须使用续行号 …,例如要在,bullet',”
%后换行,需写“bullet',…”后才能换行。
% 'HorizontalAlignment','right' 表示箭头所指的曲线对象在 文字的右边。
text(2,3*exp(-0.5*2),['\fontsize{15}\bullet\leftarrow The Value of \it{3e}^{-0.5 \it{t}}=',num2str(3*exp(-0.5*2)),' at \it{t} =2 ']);
%num2str的用法:['string1',num2str,'string2'],注意方括号的使用。
%legend('\itsin(t)','{\itAe}^{-\alphat}') % 请结合图形观察此命令的使用
运行结果如图2.6所示。
5,图形窗口的创建和分割
clf,
b=2*pi;
x=linspace(0,b,50);
for k =1:9
y=sin(k*x);
subplot(3,3,k);
plot(x,y);
axis([0,2*pi,-1,1])
end
6,绘制二元函数
绘制 的图象,作定义域的裁剪。
- 观察meshgrid指令的效果。
a=-0.98;b=0.98;c=-1;d=1;n=10;
x=linspace(a,b,n);
y=linspace(c,d,n);
[X,Y]=meshgrid(x,y);
plot(X,Y,'+')
三维绘图指令mesh、meshc、surf。
- 做函数的定义域裁剪,观察上述三维绘图指令的效果。
clear,clf,
a=-1;b=1;c=-15;d=15;n=20;eps1=0.01;
x=linspace(a,b,n);y=linspace(c,d,n);
[X,Y]=meshgrid(x,y);
for i=1:n %计算函数值z,并作定义域裁剪
for j=1:n
if (1-X(i,j))<eps1|X(i,j)-Y(i,j)<eps1 %if语句这样用
z(i,j)=NaN; %作定义域裁剪,定义域以外的函数值为NaN
else
z(i,j)=1000*sqrt(1-X(i,j))^-1.*log(X(i,j)-Y(i,j));
end
end
end
zz=-20*ones(1,n);
plot3(x,x,zz);
grid off;
hold on %画定义域的边界线
mesh(X,Y,z) %绘图,读者可用meshz,surf,meshc在此替换之
xlabel('x'),ylabel('y'),zlabel('z'),
box on %把三维图形封闭在箱体里
运行上述程序,有关向量存储在工作空间中,在此基础上,观察上述等值线绘制指令的运行效果。
[cs,h]=contour(X,Y,z,15);
clabel(cs,h,'labelspacing',244)