You are on page 1of 57

Matlab 上机习题





师 统计计


学 算



统 专业:统计

学 学

2009 年 9 月 -2010 年
2月

汤银才 yctang@stat.ecnu.edu.cn -1-


一、 MATLAB 概述

 MATLAB 是英文 MATrix LABorotory( 矩阵实验室 ) 的



东 缩写

范  MATLAB 语言是一种广泛应用于工程计算及数值分析
大 领域的新型高级语言

 国际公认的最优秀的工程应用开发环境。

融  MATLAB 功能强大、简单易学、编程效率高,深受广

统 大科技工作者的欢迎。

学  大学生、硕士生以及博士生必须掌握的基本技能。

汤银才 yctang@stat.ecnu.edu.cn -2-


MATLAB 特点 :
1. 数值计算和符号计算功能
华 MATLAB 的数值计算功能包括:矩阵运算、多项式、数据统计分
东 析、数值积分、优化处理等。符号计算将得到问题的解析解。

范 2.MATLAB 语言

学 MATLAB 除了命令行的交互式操作以外,还可以程序方式工作。

金 3. 图形功能
融 MATLAB 提供了两个层次的图形命令。利用 MATLAB 的高级图形

统 命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形
计 和坐标的标识、视角和光照设计、色彩精细控制等等。

院 4. 应用工具箱
基本部分和各种可选的工具箱。基本部分中有
数百个内部函数。
汤银才 yctang@stat.ecnu.edu.cn -3-
二、 MATLAB 程序设计

1.MATLAB
有两种工作方式:

东 – 交互式的命令行工作方式

范 【例 1 】 求方程 x^4+7x^3 +9x-20=0 的全部根。
大 在 MATLAB 命令窗口输入:

p=[1,7,0,9,-20]; % 建立多项式系数向量
金 x=roots(p) % 求根


统 2. M 文件的程序工作方式

学 M文件 : 有两类:命令文件和函数文件。

– 命令文件:没有输入参数,也不返回输出参数。
– 函数文件:可以输入参数,也可返回输出参数。

汤银才 yctang@stat.ecnu.edu.cn -4-


命令文件
【例 2 】 建立一个命令文件将变量 a,b 的值互换 (e31 . m) :
a=1:9;
华 b=[11,12,13;14,15,16;17,18,19];

师 c=a;a=b;b=c;
范 a

学 b







汤银才 yctang@stat.ecnu.edu.cn -5-


函数文件
 1. 函数文件格式

华 function 输出形参表 = 函数名 ( 输入形参表 )



师 注释说明部分
范 函数体


【例 3 】 编写函数求小于任意自然数 n 的 Fibonacci 数列各项
金 (ffib.m)

与 function f=ffib(n)
统 % 用于求 Fibonacci 数列的函数文件: f=ffib(n)
计 f=[1,1]; i=1;

院 while f(i)+f(i+1)<n
f(i+2)=f(i)+f(i+1);
i=i+1;
end

汤银才 yctang@stat.ecnu.edu.cn -6-


 2 .函数调用
华 函数调用的一般格式是:
东 [ 输出实参表 ]= 函数名 ( 输入实参表 )



学 【例 4 】利用函数的递归调用,求 n !

金 function f=factor(n) 在命令文件 main2.m 中调用


融 if n<=1 函数文件 factor.m :

统 f=1; for i=1:10
计 else fac(i)=factor(i);
学 f=factor(n-1)*n; end

end fac
return; % 返回

汤银才 yctang@stat.ecnu.edu.cn -7-


全局变量和局部变量
在 MATLAB 中,全局变量用命令 global 定义。函
数文件的内部变量是局部的,与其他函数文件及

东 MATLAB 工作空间相互隔离。但是,如果在若干函数
师 中,都把某一变量定义为全局变量,那么这些函数将

大 公用这一个变量。全局变量的作用域是整个 MATLAB
学 工作空间,即全程有效。

融 【例 5 】 全局变量应用示例
与 先建立函数文件 wadd.m ,该函数将输入的参数加权相加。
统 function f=wadd(x,y)

学 %add two variable
院 global ALPHA BETA
f=ALPHA*x+BETA*y;

汤银才 yctang@stat.ecnu.edu.cn -8-


数据的输入输出
1. input 函数: 用于向计算机输入一个参数。
华 调用格式: A=input( 提示信息,选项 ) ;

师 注:‘ s’ 选项,则允许用户输入一个字符串。

大 例如想输入一个人的姓名,可采用命令

xm=input('What''s your name:','s')

融 【例 6 】 求一元二次方程 a2 +bx+c=0 的根 (aa.m)
与 a=input('a=?');

计 b=input('b=?');
学 c=input('c=?');
院 d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]

汤银才 yctang@stat.ecnu.edu.cn -9-


2 . pause 函数: 暂停程序的执行。
华 调用格式: pause( 延迟秒数 )

师 注:如果省略延迟时间,直接使用 pause ,则将暂停
范 程序,直到用户按任一键后程序继续执行。



3 . disp 函数:命令窗口输出函数。

与 调用格式: disp( 输出项 )

计 注:输出项为字符串或矩阵。

院 例如
A='Hello,MATLAB';
disp(A)

汤银才 yctang@stat.ecnu.edu.cn - 10 -
程序设计

(一)选择结构

东 选择结构的语句有 if 语句和 switch 语句。


大 1 . if 语句


融 格式一: if 条件 格式二: if 条件
与 语句组 语句组 1

计 end else
学 语句组 2

end

汤银才 yctang@stat.ecnu.edu.cn - 11 -
格式三: if 条件 1

东 语句组 1
师 elseif 条件 2

大 语句组 2

……
金 elseif 条件 m

与 语句组 m
统 else

学 语句组 m+1

end

汤银才 yctang@stat.ecnu.edu.cn - 12 -
【例 7 】 输入三角形的三条边,求面积。
A=input(' 请输入三角形的三条边: ');

东 if A(1)+A(2)>A(3) & A(1)+A(3)>A(2) & A(2)+A(3)>A(1)
师 p=(A(1)+A(2)+A(3))/2;

大 s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));

disp(s);
金 else

与 disp(' 不能构成一个三角形。 ')
统 end



运行: 请输入三角形的三条边: [4 5 6]
9.9216

汤银才 yctang@stat.ecnu.edu.cn - 13 -
2 switch 语句

switch 语句根据变量或表达式的取值不同,分别
东 执行不同的语句。其格式为:

范 switch 表达式
大 case 值 1
学 语句组 1
金 case 值 2
融 语句组 2

统 ……
计 case 值 m
学 语句组 m

otherwise
语句组 m+1
end

汤银才 yctang@stat.ecnu.edu.cn - 14 -
(二)循环结构

东 实现循环结构的语句: for 语句和 while 语句。

范 1 . for 语句:

学 格式: for 循环变量 = 表达式 1: 表达式 2: 表达式 3
金 循环体语句
融 end



学 注:其中表达式 1 的值为循环变量的初值,表达式 2 的

值为步长,表达式 3 的值为循环变量的终值。步长为
1 时,表达式 2 可以省略。

汤银才 yctang@stat.ecnu.edu.cn - 15 -
【例 8 】 根据变量 num 的值来决定显示的内容。
num=input(' 请输入一个数 ');
华 switch num

师 case -1
范 disp('I am a teacher.');

学 case 0
disp('I am a student.');
金 case 1

与 disp('You are a teacher.');
统 otherwise
计 disp('You are a student.');

院 end

汤银才 yctang@stat.ecnu.edu.cn - 16 -
2 . while 语句
华 格式为:
东 while ( 条件 )

范 循环体语句
大 end



与 3 . 循环的嵌套

计 多重循环的嵌套层数可以是任意的。可以按照嵌
学 套层数,分别叫做二重循环、三重循环等。处于内部

的循环叫作内循环,处于外部的循环叫作外循环。

汤银才 yctang@stat.ecnu.edu.cn - 17 -
【例 9 】求 [100,1000] 以内的全部素数。


师 n=0; i=i+1;
范 end
大 for m=100:1000
if flag
学 flag=1; j=m-1; n=n+1;
金 i=2; prime(n)=m;
融 while i<=j & flag end

统 if rem(m,i)==0 end
计 prime % 变量 prime 存放素
学 flag=0;

院 end

汤银才 yctang@stat.ecnu.edu.cn - 18 -
统计工具箱常用的命令

– 产生随机数 :

东 正态分布、对数正态分布、指数分布等
师 – 计算常用分布的概率密度函数

大 – 计算常用分布的 ( 累积 ) 分布函数

– 计算常用分布的分位数 ( 逆累积分布函数 )

融 – 常用分布的极大似然估计
与 – 常用的统计特征量

计 – 常用的检验方法 (JBtest, kktest)

院 – 常用的统计绘图工具 (qqplot, boxplot, normplot 等 )

汤银才 yctang@stat.ecnu.edu.cn - 19 -
三、绘图功能
Matlab 具有很
 作为一个功能强大的工具软件,
华 强的图形处理功能,提供了大量的二维、三维图

师 形函数。由于系统采用面向对象的技术和丰富的

大 矩阵运算,所以在图形处理方面即常方便又高效
学 。






汤银才 yctang@stat.ecnu.edu.cn - 20 -
3.1 二维图形

一、 plot 函数

东 函数格式: plot(x,y) 其中 x 和 y 为坐标向量
师 函数功能:以向量 x 、 y 为轴,绘制曲线。


学 【例 3-1 】 在区间 0≤X≤2π 内,绘制正弦曲线 Y=SIN(X) ,
其程序为:

融 x=0:pi/100:2*pi;
与 y=sin(x);
统 plot(x,y)


汤银才 yctang@stat.ecnu.edu.cn - 21 -
【例 3-2 】同时绘制正、余弦两条曲线 Y1=SIN ( X )
和 Y2=COS ( X ),其程序为:
华 x=0:pi/100:2*pi;

师 y1=sin(x);

大 y2=cos(x);
学 plot(x,y1,x,y2)


与 plot 函数还可以为 plot(x,y1,x,y2 , x,y3 ,… ) 形式,其功
统 能是以公共向量 x 为 X 轴,分别以 y1 , y2 , y3 ,…为 Y

学 轴,在同一幅图内绘制出多条曲线。

汤银才 yctang@stat.ecnu.edu.cn - 22 -
(一)线型与颜色
华 格式: plot(x,y1,’cs’,...)

师 其中 c 表示颜色, s 表示线型。

大 【例 3-3 】 用不同线型和颜色重新绘制例 4.2 图形,其程序为:

x=0:pi/100:2*pi;

融 y1=sin(x);
与 y2=cos(x);

计 plot(x,y1,'go',x,y2,'b-.')
学 其中参数 'go' 和 'b-.' 表示图形的颜色和线型。 g 表示绿色, o 表

示图形线型为圆圈; b 表示蓝色, -. 表示图形线型为点划线。

汤银才 yctang@stat.ecnu.edu.cn - 23 -
(二)图形标记
华 在绘制图形的同时,可以对图形加上一些说明,如

师 图形名称、图形某一部分的含义、坐标说明等,将这
范 些操作称为添加图形标记。

学 title(‘ 加图形标题 ');
金 xlabel(' 加 X 轴标记 ');

与 ylabel(' 加 Y 轴标记 ');

计 text(X,Y,' 添加文本 ');

汤银才 yctang@stat.ecnu.edu.cn - 24 -
(三)设定坐标轴
华 用户若对坐标系统不满意,可利用 axis 命令对其重新设定。

师 axis([xmin xmax ymin ymax]) 设定最大和最小值
范 axis (’ auto’ ) 将坐标系统返回到自动缺省状态

学 axis (’ square’ ) 将当前图形设置为方形
金 axis (’ equal’ ) 两个坐标因子设成相等

与 axis (’ off’ ) 关闭坐标系统

计 axis (’ on’ ) 显示坐标系统

汤银才 yctang@stat.ecnu.edu.cn - 25 -
华 【例 3-4 】 在坐标范围 0≤X≤2π,-2≤Y≤2 内重新绘制正弦曲线,
东 其程序为:

范 x=linspace(0,2*pi,60); 生成含有 60 个数据元素的向量 X
大 y=sin(x);

plot(x,y);
金 axis ([0 2*pi -2 2]); 设定坐标轴范围





汤银才 yctang@stat.ecnu.edu.cn - 26 -
(四)加图例
华 给图形加图例命令为 legend 。该命令把图例放置在
东 图形空白处,用户还可以通过鼠标移动图例,将其放到

范 希望的位置。

学 格式 :legend(' 图例说明 ',' 图例说明 ')

金 【例 3-5 】 为正弦、余弦曲线增加图例,其程序为:

与 x=0:pi/100:2*pi;
统 y1=sin(x);

学 y2=cos(x);

plot(x,y1,x,y2, '--');
legend('sin(x)','cos(x)');

汤银才 yctang@stat.ecnu.edu.cn - 27 -
二、 subplot 函数

东 (一) subplot ( m,n,p )

范 该命令将当前图形窗口分成 m×n 个绘图区,

学 即每行 n 个,共 m 行,区号按行优先编号,且
金 选定第 p 个区为当前活动区。





汤银才 yctang@stat.ecnu.edu.cn - 28 -
【例 3-6 】 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线
,程序为:

东 x=linspace(0,2*pi,60);

范 y=sin(x);
大 z=cos(x);

t=sin(x)./(cos(x)+eps); eps 为系统内部常数
金 ct=cos(x)./(sin(x)+eps);

与 subplot(2,2,1); 分成 2×2 区域且指定 1 号为活动区

计 plot(x,y);
学 title('sin(x)');

axis ([0 2*pi -1 1]);

汤银才 yctang@stat.ecnu.edu.cn - 29 -
subplot(2,2,2);
华 plot(x,z);
东 title('cos(x)');
师 axis ([0 2*pi -1 1]);

大 subplot(2,2,3);
学 plot(x,t);
title('tangent(x)');
金 axis ([0 2*pi -40 40]);

与 subplot(2,2,4);
统 plot(x,ct);
计 title('cotangent(x)');

院 axis ([0 2*pi -40 40]);

汤银才 yctang@stat.ecnu.edu.cn - 30 -
(二)多图形窗口
华 需要建立多个图形窗口,绘制并保持每一个窗口的图形

师 ,可以使用 figure 命令。

大 每执行一次 figure 命令,就创建一个新的图形窗口,
学 该窗口自动为活动窗口,若需要还可以返回该窗口的识别
金 号码,称该号码为句柄。句柄显示在图形窗口的标题栏中
融 ,即图形窗口标题。用户可通过句柄激活或关闭某图形窗
与 口,而 axis 、 xlabel 、 title 等许多命令也只对活动

计 窗口有效。

汤银才 yctang@stat.ecnu.edu.cn - 31 -
重新绘制上例 4 个图形,程序变动后如下:
x=linspace(0,2*pi,60);

东 y=sin(x);
师 z=cos(x);

大 t=sin(x)./(cos(x)+eps);

ct=cos(x)./(sin(x)+eps);
金 H1=figure; % 创建新窗口并返回句柄到变量 H1

与 plot(x,y); % 绘制图形并设置有关属性
统 title('sin(x)');

学 axis ([0 2*pi -1 1]);

H2=figure; % 创建第二个窗口并返回句柄到变量 H2
plot(x,z); % 绘制图形并设置有关属性
title('cos(x)');

汤银才 yctang@stat.ecnu.edu.cn - 32 -
axis ([0 2*pi -1 1]);
华 H3=figure; 同上
东 plot(x,t);
师 title('tangent(x)');

大 axis ([0 2*pi -40 40]);
学 H4=figure; 同上
plot(x,ct);
金 title('cotangent(x)');

与 axis ([0 2*pi -40 40]);



汤银才 yctang@stat.ecnu.edu.cn - 33 -
(三) hold 命令

东 若在已存在图形窗口中用 plot 命令继续添加新的图

范 形内容,可使用图形保持命令 hold 。发出命令 hold on
大 后,再执行 plot 命令,在保持原有图形或曲线的基础上

,添加新绘制的图形。






汤银才 yctang@stat.ecnu.edu.cn - 34 -
【例 3-7 】阅读如下程序:
华 x=linspace(0,2*pi,60);
东 y=sin(x);

范 z=cos(x);
大 plot(x,y,'b'); 绘制正弦曲线

hold on; 设置图形保持状态

融 plot(x,z,'g'); % 保持正弦曲线同时绘制余弦曲线
与 axis ([0 2*pi -1 1]);

计 legend('cos','sin');

院 hold off 关闭图形保持

汤银才 yctang@stat.ecnu.edu.cn - 35 -
三、 函数 f(x) 曲线
华 fplot 函数则可自适应地对函数进行采样,能更好地反应函数
东 的变化规律。

范 fplot 函数格式: fplot(fname , lims , tol)
大 其中 fname 为函数名,以字符串形式出现, lims 为变量

取值范围, tol 为相对允许误差,其其系统默认值为 2e-
金 3。



计 【例 3-8 】同时绘制正弦、余弦曲线
学 fplot(‘sin(x)’,[0 2*pi],’-+’)
院 fplot(‘[sin(x),cos(x)]’,[0 2*pi],1e-3,’·’)

汤银才 yctang@stat.ecnu.edu.cn - 36 -

东 为绘制 f(x)=cos(tan(πx)) 曲线,可先建立函数文件
师 fct.m ,其内容为:

大 function y=fct(x)


y=cos(tan(pi*x));



计 用 fplot 函数调用 fct.m 函数,其命令为:

院 fplot(‘fct’,[0 1],1e-4)

汤银才 yctang@stat.ecnu.edu.cn - 37 -
3.2 特殊坐标图形
一、 对数坐标图形
华 (一) loglog(x,y) 双对数坐标

师 【例 3-9 】 绘制 y=|1000sin(4x)|+1 的双对数坐标图。程序为:

大 x=[0:0.1:2*pi];
学 y=abs(1000*sin(4*x))+1;
loglog(x,y); % 双对数坐标绘图命令






汤银才 yctang@stat.ecnu.edu.cn - 38 -
(二)单对数坐标
华 以 X 轴为对数重新绘制上述曲线,程序为:

师 x=[0:0.01:2*pi];

大 y=abs(1000*sin(4*x))+1;

semilogx(x,y); % 单对数 X 轴绘图命令

融 同样,可以以 Y 轴为对数重新绘制上述曲线,程序为:

统 x=[0:0.01:2*pi];

学 y=abs(1000*sin(4*x))+1;

semilogy(x,y); % 单对数 Y 轴绘图命令

汤银才 yctang@stat.ecnu.edu.cn - 39 -
二、 极坐标图

东 函数 polar(theta,rho) 用来绘制极坐标图, theta 为极

范 坐标角度, rho 为极坐标半径

学 【例 3-10 】 绘制 sin(2*θ)*cos(2*θ) 的极坐标图,程序为:
theta=[0:0.01:2*pi];

融 rho=sin(2*theta).*cos(2*theta);
与 polar(theta,rho); % 绘制极坐标图命令
统 title('polar plot');


汤银才 yctang@stat.ecnu.edu.cn - 40 -
3.3 其它图形函数

除 plot 等基本绘图命令外, Matlab 系统提供了许多其


华 它特殊绘图函数,这里举一些代表性例子,更详细的信

师 息用户可随时查阅在线帮助,其对应的 M-file 文件存放

大 在系统 \matlab\toolbox\matlab 目录下。







汤银才 yctang@stat.ecnu.edu.cn - 41 -
一、阶梯图形
华 函数 stairs(x,y) 可以绘制阶梯图形,如下列程序段:

师 x=[-2.5:0.25:2.5];


学 y=exp(-x.*x);
金 stairs(x,y); % 绘制阶梯图形命令

与 title('stairs plot');



汤银才 yctang@stat.ecnu.edu.cn - 42 -
二、条形图形

东 函数 bar(x,y) 可以绘制条形图形,如下列程序段将绘制

范 条形图形

学 x=[-2.5:0.25:2.5];
金 y=exp(-x.*x);

与 bar(x,y); % 绘制条形图命令



汤银才 yctang@stat.ecnu.edu.cn - 43 -
三、填充图形

东 fill(x,y,’c’) 函数用来绘制并填充二维多边图形, x 和 y
师 为二维多边形顶点坐标向量。字符 ’ c’ 规定填充颜色

大 ,其取值前已叙述。

下述程序段绘制一正方形并以黄色填充:






汤银才 yctang@stat.ecnu.edu.cn - 44 -
x=[0 1 1 0 0]; % 正方形顶点坐标向量
华 y=[0 0 1 1 0];
东 fill(x,y,'y');% 绘制并以黄色填充正方形图

范 再如:
大 x=[0:0.025:2*pi];

y=sin(3*x);
金 fill(x,y,[0.5 0.3 0.4]); 颜色向量

与 Matlab 系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用
统 [r g b] 表示,即 RGB 颜色组合;以 RGB 为基本色,通过 r,g,b 在

学 0~1 范围内的不同取值可以组合出各种颜色。

汤银才 yctang@stat.ecnu.edu.cn - 45 -
二维绘图函数小结
plot 二维图形基本函数
fplot f(x) 函数曲线绘制

东 fill 填充二维多边图形
师 polar 极坐标图

大 bar 条形图
学 loglog 双对数坐标图
金 semilogx X 轴为对数的坐标图
融 semilogy Y 轴为对数的坐标图

统 stairs 阶梯形图
计 axis 设置坐标轴

院 clf 清除图形窗口内容
close 关闭图形窗口

汤银才 yctang@stat.ecnu.edu.cn - 46 -
华 figure 创建图形窗口
东 grid 放置坐标网格线
师 gtext 用鼠标放置文本

大 hold 保持当前图形窗口内容
学 subplot 创建子图
text 放置文本
金 title 放置图形标题

与 xlabel 放置 X 轴坐标标记
统 ylabel 放置 Y 轴坐标标记


汤银才 yctang@stat.ecnu.edu.cn - 47 -
3.4 三维图形

一、 plot3 函数
华 最基本的三维图形函数为 plot3 ,它是将二维函数 plot 的

师 有关功能扩展到三维空间,用来绘制三维图形。

大 函数格式: plot3(x1,y1,z1,c1,x2,y2,z2,c2,…)
学 其中 x1,y1,z1… 表示三维坐标向量,
金 c1 , c2… 表示线形或颜色。
融 函数功能:以向量 x , y , z 为坐标,绘制三维曲线。




汤银才 yctang@stat.ecnu.edu.cn - 48 -
【例 3-11 】 绘制三维螺旋曲线,其程序为:
华 t=0:pi/50:10*pi;
东 y1=sin(t);y2=cos(t);

范 plot3(y1,y2,t);
大 title('helix'),text(0,0,0,'origin');

xlabel('sin(t)');ylabel('cos(t)');zlabel('t');
金 grid;





汤银才 yctang@stat.ecnu.edu.cn - 49 -
二、 mesh 函数
华 mesh 函数用于绘制三维网格图。在不需要绘制特别精
东 细的三维曲面结构图时,可以通过绘制三维网格图来

范 表示三维曲面。三维曲面的网格图最突出的优点是:

学 它较好地解决了实验数据在三维空间的可视化问题。
金 函数格式: mesh(x,y,z,c)
融 其中 x , y 控制 X 和 Y 轴坐标,矩阵 z 是由 (x , y) 求得 Z 轴坐标

统 , (x,y,z) 组成了三维空间的网格点; c 用于控制网格点颜色。


汤银才 yctang@stat.ecnu.edu.cn - 50 -
【例 3-12 】 下列程序绘制三维网格曲面图
华 x=[0:0.15:2*pi];
东 y=[0:0.15:2*pi];

范 z=sin(y')*cos(x); % 矩阵相乘
大 mesh(x,y,z);







汤银才 yctang@stat.ecnu.edu.cn - 51 -
三、 surf 函数
华 surf 用于绘制三维曲面图,各线条之间的补面用颜色

师 填充。 surf 函数和 mesh 函数的调用格式一致。


学 函数格式 : surf (x,y,z)
其中 x , y 控制 X 和 Y 轴坐标,矩阵 z 是由 x , y 求得的曲面上 Z 轴
金 坐标。





汤银才 yctang@stat.ecnu.edu.cn - 52 -
【例 3-13 】 下列程序绘制三维曲面图形
华 x=[0:0.15:2*pi];
东 y=[0:0.15:2*pi];
师 z=sin(y')*cos(x); % 矩阵相乘

大 surf(x,y,z);
学 xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');
title('3-D surf');






汤银才 yctang@stat.ecnu.edu.cn - 53 -
四、视点
华 视点位置可由方位角和仰角表示。方位角又称旋转角
东 为视点位置在 XY 平面上的投影与 X 轴形成的角度,正值

范 表示逆时针,负值表示顺时针。仰角又称视角为 XY 平面

学 的上仰或下俯角,正值表示视点在 XY 平面上方,负值表
示视点在 XY 平面下方。从不同视点绘制三维图形的函数

融 为 view 。

统 函数格式 : view(az,el) 中的 az 为方位角, el 为仰角。


院 通过系统提供的多峰函数 peaks 的绘制例子,可进一步
说明视点对图形的影响,以及 view(az,el) 函数的使用。

汤银才 yctang@stat.ecnu.edu.cn - 54 -
【例 3-14 】 不同视角图形
华 p=peaks; % 系统提供的多峰函数
东 subplot(2,2,1);

范 mesh(peaks,p);

学 view(-37.5,30); % 指定子图 1 的视点
title('azimuth=-37.5,elevation=30')

融 subplot(2,2,2);
与 mesh(peaks,p);

计 view(-17,60); % 指定子图 2 的视点

院 title('azimuth=-17,elevation=60')

汤银才 yctang@stat.ecnu.edu.cn - 55 -
subplot(2,2,3);
华 mesh(peaks,p);
东 view(-90,0); % 指定子图 3 的视点
师 title('azimuth=-90,elevation=0')

大 subplot(2,2,4);
学 mesh(peaks,p);
view(-7,-10);% 指定子图 4 的视点
金 title('azimuth=-7,elevation=-10')





汤银才 yctang@stat.ecnu.edu.cn - 56 -
五、等高线图
华 等高线图可通过函数 contour3 绘制。


范 【例 3-13 】 多峰函数 peaks 的等高线图
大 [x,y,z]=peaks(30);

contour3(x,y,z,16);
金 xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
融 title('contour3 of peaks');




汤银才 yctang@stat.ecnu.edu.cn - 57 -

You might also like