实验二数据和函数的可视化
实验目的:
1.熟悉matlab软件中二维绘图和三维绘图的方法
2.学习使用matlab图形窗功能
实验内容:
基本命令
>> x=linspace(0,2*pi,100);
>> y=sin(x);
>> plot(x,y);
问题1:
1.当运行x=[1 5 3 7;3 6 8 4;9 6 1 5];y=[2 5 7 4;6 8 4 1;8 0 4 2];plot(x,y)时的结果:
2.当运行x=[1 5 3 7];y=[2 5 7 4;6 8 4 1;8 0 4 2];plot(x,y)时显示:
3. 运行x=[1 5 3 7;3 6 8 4;9 6 1 5];y=[2 5 7 4;6 8 4 1;8 0 4 2];m=cat(2,x,y);plot(m);显示:
例2:t=0:pi/20:pi;
plot(t,t.*cos(t),'-.r*');
hold on
plot(exp(t/100).*sin(t-pi/2),'--m0')
plot(sin(t*pi),':bs') %误把mo写成了m0 ^o^,导致如下结果:
??? Error using ==> plot
Error in color/linetype argument.
Error in ==> C:\MA TLAB6p5\work\Untitled2.m
On line 4 ==> plot(exp(t/100).*sin(t-pi/2),'--m0')
正确输入:
t=0:pi/20:pi;
plot(t,t.*cos(t),'-.r*');
hold on
plot(exp(t/100).*sin(t-pi/2),'--mo') plot(sin(t*pi),':bs')
如果没有hold on:
t=0:pi/20:pi;
plot(t,t.*cos(t),'-.r*');
plot(exp(t/100).*sin(t-pi/2),'--mo')
plot(sin(t*pi),':bs')
所以hold on 起到继续在当前图形上画图的作用
图形修饰与控制
axis square %将图形设置为正方形
axis equal %x,y轴单位刻度相等
title (‘字符串’)%图形标题、
axis([xmin,xmax,ymin,ymax])%x轴范围在xmin-xmax之间,y轴范围在ymin-ymax之间xlabel(‘字符串’)%x轴标注
ylabel(‘字符串’)%在(x,y)处标注说明文字
text(x,y,’字符串’)%在(x,y)处标注说明文字
grid on % 加网格线
grid off % 取消网格线
hold on %保持当前图形
hold off %解除hold on 命令
legend(‘first’,’second’,n) % 对一个坐标系上的两幅图形做出图例注解
subplot(m,n,p)将当前窗口分成m行n列区域,并指定在p区绘图
fill(x,y,’b’)%将x(1),y(1),(x(2),y(2)),…,(x(n),y(n)),(x(1),y(1))围成的封闭图形填充为蓝色
例三:subplot(2,2,1);x=0:pi/60:2*pi;plot(x,cos(x));
subplot(2,2,2);x=0:pi/60:2*pi;plot(x,sin(x));
subplot(2,1,2);plot(x,sin(x),':b',x,cos(x),'-r')
legend('sin(x)','cos(x)',1)
例四:
clf; %清除图片clear;
x=0:pi/60:2*pi;
y=sin(x);
x1=0:pi/60:pi/2;
y1=sin(x1);
plot(x,y,'-r')
hold on;
fill([x1,pi/2],[y1,0],'b')
问题2:将上面最后一句改为fill(x1,y1,'b'),fill([pi/2,x1,3*pi/2],[0,y1,0],'r') 效果
对数图形
格式:loglog(x,y) %对x轴pi,y轴的刻度用常用对数(以10为底)semilogx(x,y) %对x轴的刻度常用对数值,而y轴为线性刻度
semilogy(x,y)%对y轴的刻度常用对数值,而x轴为线性刻度
例五:
clear;
x=logspace(-1,2);
loglog(x,10*exp(x),'-s')
grid on
三维曲线图
格式:plot3(x,y,z,s)
说明:当x,y,z均为同维向量时,则plot3描点x(i),y(i),z(i)依次相连的空间曲线,若x,y 均为同维矩阵,x,y,z每一组相应列向量为坐标画出一条曲线。
S为’color-linestyle-marker’
例六绘制螺旋线
t=0:pi/60:10*pi;
x=sin(t);
y=cos(t);
plot3(x,y,t,'*-b')% *表示用*画出,-表示用线连接
%还有s 方格,:点;
grid on
三维网格图
格式:mesh(x,y,z,c) %画出颜色由C指定的三维网格图
说明:若x,y均为向量,n=length(x),z必须满足[m,n]=size(z),则空间中的点(x(j),y(i),z(i,j))
为所画曲面网线的交点,x对应于z点的列,y对应于z的行;若x,y,z均为同维矩阵,则空间中的点(x(i,j(,y(i,j),z(i,j))为所画曲面的网线的交点:矩阵C指定网线的颜色。
例七绘出带有底座的马鞍面
x=-8:8;
y=-8:8;
[x,y]=meshgrid(x,y);
z=(x.^2/4^2-y.^2/5^2);
mesh(x,y,z)
三维曲面图
格式:surf(x,y,z,c) %画出颜色由C指定的三维曲面。
说明:surf同mesh命令用法和使用格式相同,不同之处在于绘得的图形是一个彩色曲面而不是彩色网格。
C缺省时数据z同时为曲面高度,也是彩色数据。
R=8.31;
n=2;
p=(1:20);
v=(1:20);
[P,V]=meshgrid(p,v);
T=P.*V/n/R;
surf(P,V,T)
view(45,30)
练习与思考
1.输入x=[2,4,1,6,8];plot(x,'*-b'),显示:
2.在一幅图上画出两个周期的正弦曲线和余弦曲线,画出坐标轴,加上各种图注,并在正
弦曲线(0到2*pi)和横轴之间填充红色。
x=0:0.1:4*pi
plot(sin(x))
hold on
plot(cos(x))。