一、实验目的和要求
Matlab提供了强大的图形处理功能,本次实验旨在使学生熟悉和掌握应用Matlab实现二维图形和三维图形的绘制和控制与表现方法。
二、实验内容
1. 将图形窗口分为两格,分别绘制正割sec和余割csc函数曲线,并加上适当的标注。
code:
figure; %创建图形窗口
subplot(2,1,1); %分割并选择子窗口
x=(-10:0.1:10); %x的取值范围的跨度
y1=sec(x); %因变量y与x的函数关系
plot(x,y1); %绘制y的图像
title('正割函数图像') %添加图像标题
xlabel('x值') %添加x轴标签
ylabel('y值') %添加轴y标签
subplot(2,1,2);
y2=csc(x);
plot(x,y2);
title('余割函数图像')
xlabel('x值')
ylabel('y值')
2. 画出对数和指数函数曲线,并分别加上标题、轴标记和曲线说明。
注:exp(x):求以e为底,x的指数。
log2(x):求以2为底,x的对数。
code:
figure; %创建图形窗口
subplot(2,1,1); %分割并选择子窗口
x=(0:0.1:5); %x的取值范围的跨度
y1=exp(x); %因变量y与x的函数关系
plot(x,y1); %绘制y的图像
title('指数函数图像')
xlabel('x值') %添加x轴标签
ylabel('y值')
subplot(2,1,2);
y2=log2(x);
plot(x,y2);
title('对数函数图像')
xlabel('x值')
ylabel('y值')
3. 利用polar函数绘制轮胎图和笛卡尔心形图。
注:polar函数用于在笛卡尔平面中绘制极坐标图形。
theta即为θ,rho即为ρ
轮胎图code:
figure
theta=0:2*pi; %角度
rho=ones(1,length(theta)); %半径
polar(theta,rho);
心形图code:
t=0:0.01:2*pi;
r=(1-sin(t));
figure;
polar(t,r,'r') %第三位为线形,‘r’为改为红色
4. 将图形窗口分为两个窗格分别绘制函数:y=2x+5 和 y=x2-3x+1在[-3,3]区间上的曲线,并利用axis调整轴刻度,使他们具有相同的缩放尺寸。
注:power(a,b)即为a的b次方。
code:
figure;
x=-3:0.1:3;
subplot(2,1,1);
y1=2*x+5;
plot(x,y1);
axis([-3,3,-2,20]);
subplot(2,1,2);
y2=power(x,2)-3*x+1;
plot(x,y2);
axis([-3,3,-2,20]);
5. 绘制抛物线和三次幂曲线,设置图形的标题、x轴和y轴的标注、设置曲线文本标准、设置图例标注。
注:legend添加图例。
code:
x=-5:0.1:5;
y1=power(x,2);
y2=power(x,3);
plot(x,y1,'b-',x,y2,'r:')
title('y=x^2与y=x^3的曲线')
xlabel('x')
ylabel('y')
%gtext('y=x^2','FontName','Times New Roman','FontSize',16)
%gtext('y=x^3','FontName','Times New Roman','FontSize',16)
legend('y=x^2','y=x^3')
6. 有一位研究生,在一年中平均每月的费用为生活费190元,资料费33元,电话费45元,购买衣服42元,其他费用45元。请分别以柱状图和饼图表示出他每月的消费比例,并在饼图中分离出使用最多的费用和使用最少的费的切片。
注:pie()绘制饼图。 一参:数据大小,
二参:饼块分离情况,
三参:贴标签。
bar()绘制柱状图。 一参:x坐标中柱个数,
二参:y值代表的高度。
set()设置图片特征。 一参:gca代表当前图形区域,
二参:xtick表示x坐标,加label为x标签,
三参:具体添加的内容。
X=[190 33 45 42 45 ];
explode=[1 1 0 0 0 ];
colormap hsv
subplot(2,1,1)
pie(X,explode,{'生活费','资料费','电话费','购买衣服','其他费用'});
title('饼图')
subplot(2,1,2)
x=1:5;
bar(x,X)
title('柱状图')
set(gca,'xTicklabel',{'生活费','资料费','电话费','购买衣服','其他费用'})
7. 画出下列函数的三维曲线和网格曲线和等高线。z=(x-2)2+(y-1.2)2
注:[x,y]=meshgrid(a,b)用于生成向量a,b的网格数据
code:
[x,y]=meshgrid(0:0.5:10);
z=(x-2).^2+(y-1.2).^2;
subplot(3,1,1)
plot3(x,y,z)
title('三维曲线')
subplot(3,1,2)
mesh(x,y,z)
title('网格曲线')
subplot(3,1,3)
contour3(x,y,z)
title('等高线')