MATLAB 7. 0 程序设计基础_第1页
MATLAB 7. 0 程序设计基础_第2页
MATLAB 7. 0 程序设计基础_第3页
MATLAB 7. 0 程序设计基础_第4页
MATLAB 7. 0 程序设计基础_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB7.0程序设计基础

人常量与变量:

a、特殊常量:一些特殊的固定变量,具有特定的意义,用户自定义变量名时应避免使用;

ans用于结果的默认变量名;pi圆周率;inf无穷大;

NaN-------Not-a-Number,表示不定值;tic------秒表开始执行;toe-------秒表终止;

i,j-----虚数单位;date--------日历;clock-------钟表;

b、一般变量:即用户变量,与其它语言不同,matlab不要求事先对所用变量进行声明,亦

无需指定变量类型,它会自动根据变量值或对变量的操作来识别变量类型。

在赋值过程中,如果赋值变量已经存在,它会以新值覆盖旧值,包括以新值类型代替旧

值类型。

变量命名规则:首先,变量名区分大小写、其次,变量名的长度不得超过31位、最后,

变量名以字母开头、可由字母、数字、下划线组成,但不能使用标点

变量作用域:若未加特殊说明,matIab视所识别的一切变量为局部变量,即仅在所使用

的m文件内有效。要将变量定义为全局变量的话,应对变量进行说明,即在变量前加关键字

global;一般全局变量字符用大写英文字母表示。

2、数组:

>建立数组:

1)逐个元素输入法:如x=[123;234;245]

2)冒号法:

乂=初始量:步长:终止量、如x=1:1:5,运行结果为:x=12345

3)特殊方法:

x=linspace(初始量,终止量,数组元素的个数)

y=logspace(初始量,终止量,数组元素的个数):一般logspace(y1,y2,N)表示

在10八和10”之间插入卜2个元素,组成一个含有N个元素的数组;如果y2=pi,则

表示在10句和pi之间插入N-2个元素;如果N<2,返回值为IO〉?。

(心得:二维数组的建立可通过逐行定义一维数组的方法实现,比如

x=[1:2:10;3:1:7;4:3:16]

或者x=[linspace(1,8,4);Iinspace(2,10,4);Iinspace(3,20,4)]来实现二维数组的建

立。)

>引用数组:

1)一维数组:x(n)和x(n1,n2)

x(n)表示一维数组中的第n个元素;x(n1:n2)表示一维数组中的第n1至n2个元素。

2)二维数组:x(m,:)和x(:,n)及x(m,n1:n2)

x(m,:)表示二维数组中的第m行元素;x(:,n)表示二维数组中的第n列元素;

x(m,n1,n2)表示二维数组中的第m行中的n1至n2个元素。

>细胞数组与结构数组:

1)细胞数组:细胞数组是以单元为元素的数组,每个单元称为单元,每个单元可以包

含其他类型数组,如实数矩阵、字符串数组、复数向量。(说白了就是数组中的数

组,即数组的嵌套)

细胞数组通常由{}创建,其中的数据通过数组下标引用。

【示例】:

»cIear

»A(1,1)={3+2i};

»A(1,2)={,fucknuc');

»A(2,1)={[1:2:6]};

»A(2,2)={[linspace(1,8,4);Iinspace(2,10,4);Iinspace(3,20,4)]};

»A

A=

[3,0000+2.0000i],fucknuc'

[1x3doubIe][3x4doubIe]

»A(2,2)

ans=

[3x4doubIe]

»A(1,2)

ans=

'fucknuc'

2)结构数组:结构数组是根据属性名组织起来的不同类型数据的集合。结构的任何一

个属性可以包含不同的数据类型(如字符串文本、标量、矩阵等)。MATLAB使用分

级存储机制来存储不同类型的数据,结构数组数据通过属性名来引用。

(心得:说的更直接点,我认为即是不同变量类型数组的组合而成的数组)

【函数命令】struct

【调用格式】S=stuct(,类型「,{类型1的数组},'类型7,{类型2的数组},……)

注:如果口中没有任何数据即为空时,表示建立一个空的结构数组,不含任何数据。

当扩展结构数组时,MATLAB对未指定的属性以空矩阵赋值,且数组中每个结构具

有同样多的属性名、所有属性具有相同的属性名。

下面举个例子就明白了:

»student=struct('name',{'MuWei','WangXP'),'sex',{'male','female'})

student=

1x2structarraywithfields:

name

sex

»student(1)%查看结构数组中第1个结构的数据

ans二

name:'MuWei'

sex:'male'

»student(2)%查看结构数组中第2个结构的数据

ans二

name:'WangXP'

sex:'femaIe'

»student(2).name%通过属性名来引用数据即结构2中name属性的数据

ans二

WangXP

»

3、运算符:

>算术运算符:

操作符意思

+算术加

-算术减

*算术乘

.*点乘

算术乘方

点乘方

\算术左除(向左倒)

.\点左除(向左倒)

/算术右除(向右倒)

./点右除(向右倒)

说明:

上面的算术加(+)、减(一)、乘(*)及乘方「)与平时传统意义的加、减、乘及乘

方类似,用法基本相同。

但是点乘(.*)、点乘方(「)等运算则有些特殊,是针对矩阵内元素对元素之间的运

算,即线性代数中的矩阵乘法;点运算要求参与运算的变量(即矩阵)在结构上必须是相似

的,即要求矩阵的列数和行数必须对应相等。

MATLAB中的除法运算相对有些复杂:

对于简单数值运算而言,算术左右除不同:算术右除与传统除法相同,即a/b=a+b;

算术左除则恰好相反,即=

对于矩阵而言,算术右除3/A相当于求解线性方程组他=A,即算

术左除B\A则相当于求解线性方程组Ax=B,即3\A=A-1义3。

--

「0.50.5o32r

【实例】:已知A=-0.50.50,B=000,求=(2A_E)g3(2A_E)T

001000

【代码】

»A=[0.50.50;-0.50.50;001]

A二

0.50000.50000

-0.50000.50000

001.0000

»B=[321;000;000]

B二

321

000

000

»E=[100;010;001]

E=

100

010

001

»C=(2*A-E)*(B"3)/(2*A-E)

C=

000

-1827-9

000

»

A关系运算符:

操作符定义

==等于

不等于

>大于

>=大于等于

<小于

<=小于等于

关系运算符主要用来对矩阵与数、矩阵与矩阵进行比较,返回二者关系的、由数0

和1组成的矩阵,。和1分别表示不满足和满足指定关系。

判断一个矩阵是否为空矩阵时,不能使用“==",而应当使用函数isempty,MATLAB

的空矩阵是指矩阵存在,但不含任何元素。

【示例】:

134

矩阵A=567求矩阵A中不等于2的元素个数no

225

【代码】:

»A=[134;567;225]

A二

134

567

225

»B=A~二2

B二

111

111

001

»n=sum(sum(B))

n=

7

»

A逻辑运算符

操作符定义

&逻辑与

I逻辑或

逻辑非

xor逻辑异或

MATLAB语言中进行逻辑判断时,所有非零数值均被认为为真,而零为假;在逻辑判断结

果中,判断为真时输出1、判断为假时输出0。

在算术、关系,逻辑三种运算符中,算术运算符优先级最高,关系运算符次之,逻辑运

算符的优先级最低。在逻辑“与”、“或”、“非”三者中,“与”和“或”有相同的优先级,

从左到右依次执行都低于“非”的优先级。实际应用中可以通过括号来调整运算过程中的

次序。即:

运算符优先级排序

算术运算符>关系运算符(等于、大于、小于等)>逻辑运算符(与、或、非、异或)

非(~)>与(&)=或(|)

可以通过括号来调整运算过程中的优先级次序

MATLAB中的逻辑运算规则为:与运算只有运算的两个对象都为真时结果才为真否则为假

(即都为1时才为1,否则为0);或运算只要运算的两个对象有一个为真则结果为真,两个

同时为假时才为假(即有一个为1则为1,

两个都为0才为0);异或运算的两个对象不同时

才为1,相同时为0(即两个都为0或都为

1时为0,其它的为1);非运算则是对运算对象取

反即可。

【示例】:逻辑矩阵人=;;,3=:;,逻辑标量b=1,求C1=A&b,C2=A|b,

C3=xor(A,B)o

【代码及结果】:

»cIear

»A二口1;01]

A二

11

01

»b=1

b二

1

»B=[01;00]

B二

01

00

»C仁A&b%将A中元素与1做与运算,求出1的个数

C1二

11

01

»C2二B|0%将B中的元素与0进行或运算,求出0的个数

C2二

01

00

»C3=xor(A,B)%将矩阵A与矩阵B进行异或运算,计算A与B中不同的元素个数

C3=

10

01

»

>逻辑函数:

逻辑函数十分有用,在交互运算、矩阵变化时可以方便地查找或替换矩阵中满足一定条件

的部分或所有元素。MATLAB中的主要逻辑函数如表所示:

MATLAB中的逻辑函数

逻辑函数函数意义

all判断是不是所有元素为非零值

any判断是否存在一个元素为非零值

exist查看变量或函数是否存在

find找出向量或矩阵中非零元素的位置标识

isempty判断矩阵是否为空矩阵

isequaI判断几个对象是否相等

isnumeric判断对象是否为数值型

对于二维矩阵A,all(A)表示如果矩阵A的某列所有元素都为非零数,则返回结果的

当前列为逻辑“真”,即逻辑1。

逻辑函数any的用法与alI相同,其在矩阵相除时,可判断除数矩阵是否含有零元素。

使用isnumeric等命令时,如果判断对象为系数矩阵、双精度矩阵、复数矩阵等,则返

回值为1;如果判断对象为字符串、结构矩阵等,则返回值为0。

在程序设计中,有时需要知道变量是否已经被定义过,有时需要了解变量的类型,这是

exist函数非常有用,其调用格式为a=exsit,A,),a的返回值为数0~7,分别表示不同的

含义:

aA的状态或类型

0对象A不存在或不在MATLAB的搜索路径下

1对象A是工作空间中的一个变量

2对象A是一个M文件或在MATLAB搜索路径下的未知类型文件

3对象A是一个MATLAB搜索路径下的文件

4对象A是一个MATLAB搜索路径下的已编译的SIMULINK函数(MDL文件)

5对象A是MATLAB的内置函数

6对象A是一个MATLAB搜索路径下的P文件

7对象A是一个路径,不一定是MATLAB搜索路径

•ALL函数示例:向量a二口35],矩阵A=[123;045],求B仁aI函a)示2=a11(A),

B3=alI(A,2)o

【代码及运行结果】:

»a=[135]

a二

135

»A=[123;0451

A二

123

045

»B1=all(a)%判断向量a中的每个元素是否为非零数

B1二

1

»B2=al1(A)%依次对矩阵的列进行判断是否每列的元素都为非零数

B2二

011

»B3=alI(A,2)%将指定的第2维作为向量进行运算

B3二

1

0

»

【Any函数示例1向量a=[030],矩阵A=[103;005],求B仁any(a),B2=any(A),

B3=any(A,2)o

【代码及运行结果】:

»cIear

»a=[030]

a二

030

»A=[103;0051

A二

103

005

»B1=any(a)%判断a中是否存在一个元素为非零值

B1二

1

»B2=any(A)%判断矩阵A的每一列中是否存在非零值

B2二

101

»B3=any(A,2)%判断A的每一行中是否存在非零值

B3二

1

1

»

•【Exsit函数示例】:求返回值akexist(例ork'),a2=exist(*fiItdes'),

a3=exist('c:\windows')。

【代码及运行结果】:

>>cIear

»a1=exist('work')%work是MATLAB7.0目录下的—子目录

a1二

7

»a2=exist('filtdes')%filtdes是toolbox\signal目录下的—个文件

a2二

6

»a3=exist('c:\windows')%windows是不在MATLAB7.0目录下的一个子目录

a3二

»

对应返回值的意义去查阅上面的那个表。

•【Find函数示例】:矩阵A=[103;005],求k=find(A),[i,j]=find(A),

[i,j,v]=find(A)。

【代码及运算结果】:

»cIear

»A=[103;0051

03

05

V

»find(A)%按列从上往下顺序从左到右依次找出A中非零元素的位置

5

6

»[i,j]=find(A)%找出每个非零元素在A中第几行第几列,并分别记在i和j两个矩阵中

1

1

2

j二

1

3

3

»[i,j,v]=find(A)%i和j与上边的一样,v为相应的非零元素的值

1

1

2

J二

1

3

3

1

3

5

»

■【Isequal函数示例】:矩阵A=[0.340.6],B=[0.34;0.6],C=['who'],判断A与B、

A与C是否相等。

【代码及运行结果】:

»A=[0.340.6]

A二

0.34000.6000

»B=[0.34;0.6]

B二

0.3400

0.6000

»C二「who']

C二

who

»isequaI(A,B)

ans二

0

»isequaI(A,C)

ans二

0

»

•【Isnumeric函数示例】:矩阵A=[0.340.6],B=[1+2*i0.6+3*i],C=['who'],判断

A、B、C是否为数据矩阵。

【代码及运行结果】:

»cIear

»A=[0.340.6]

A

0.34000.6000

»B=[1+2*i0.6+3*i]

B=

1.0000+2.0000i0.6000+3.0000i

»C=E'who']

C=

who

»isnumeric(A)

ans二

1

»isnumeric(B)

ans二

1

»isnumeric(C)

ans二

0

»

A字符串操作:

a.字符串定义:

【调用格式】s='string',name=['string1''string2''string3']

【示例】:定义字符串s仁「who''are''you'],s2=['l'''m',Mu''Wei'],s3=[s1,s2]

代码及运行结果:

»cIear

»s1=['who''are''you''?']

s1二

whoareyou?

»s2=['T'm''Mu''Wei']

s2二

I'mMuWei

»s3=[s1s2]

s3二

whoareyou?I'mMuWei

»

注意:与数组不同,字符串矩阵中的每一行字符串元素的个数可以不同、但字符总

个数必须相同;单个字符串中字符之间的空格也算一个字符;在字符串中要输入”必

需通过两个“'”实现。

b.字符串转换:

•字符串转换方式一:(矩阵——字符串矩阵)

【函数命令】char

【调用格式】S=char(T)

S=char(T)表示将由正整数组成的矩阵T转换成字符串矩阵S。

这里值得注意的是:

矩阵T的元素一般都要在165535之间,超出这个范围没有意义,但显示结果,系

统会给出错误提示。

【示例】将正整数矩阵T转换成字符串矩阵,其中T=[10267132;509578]„

【代码及运行结果】

»cIear

»T=[10267132;509578]

T二

10267132

509578

»S=char(T)

S二

fC?

2_N

»

•字符串转换方式二:(数值、矩阵——字符串/字符串矩阵)

【函数命令】int2str,num2str

【调用格式】intstr(A),num2str(A,k),num2str(A,format)

Int2str(A)将数或矩阵A转化为字符串或字符串矩阵;num2str(A,k)将数或矩阵A转化

为字符串或字符串矩阵(最多k位有效位)。Num2str(A,format)将数或矩阵A转化为字符串

或字符串矩阵(格式参照C语言)。

【示例】:将数值矩阵A转换成字符串矩阵,A=[1.26.73.2;5.59.57.8]。

【代码及运行结果】:

»A=[1.26.73.2;5.59.57.8]

A二

1.20006.70003.2000

5.50009.50007.8000

»B1=int2str(A)%四舍五入取整并转换为字符串矩阵

B1二

173

6108

»B2=num2str(A,1)

B2二

173

61e+0018

»B3=num2str(A,'%10.3f')%不知道

B3二

1.2006.7003.200

5.5009.5007.800

»B3=num2str(A,'%10.3f')%3位有效位,10位长

B3二

1.2006.7003.200

5.5009.5007.800

»

•字符串转换方式三:(字符串——数值)

【函数命令】:eval,str2num

【调用格式】:evaI(S),str2num(S)

eval(S)表示将字符串S转化为数值;str2num(S)表示将字符串S转化为数值。

【示例】,将字符串表达式降匕.*5后限*幻,转化为数值,其中"[12],w=[13],

x=[12]o

【代码及运行结果】:

»clear

»a=[12]

a二

12

»w=[13]

w

13

»x=[12]

x二

12

»S="a.*sin(w.*x),

S二

a.*sin(w.*x)

»sinx=eval(S)

sinx二

0.8415-0.5588

»S=a.*sin(w.*x)%注意这里直接算出的结果和上边经字符串转化过来的结果一样

S二

0.8415-0.5588

»

C、字符串求值:

【函数命令】:iniine

【调用格式】:inIine(exr),iniine(expr,arg1,arg2,...)

iniine(exr)表示将字符串表达式转化为函数表达式;expr为字符串表达式;arg1,

arg2,..・为字符串,其作用是定义变量。

【示例】:确定函数千二5$仙々)+3005«),x,y为自变量。

【代码及运行结果】:

>>f=inIine('5*sin(x)+3*cos(y)','x','y')

InIinefunction:

f(x,y)=5*sin(x)+3*cos(y)

4、m文件

m文件是由MATLAB语言编写的、可在MATLAB语言环境下运行的程序源代码文件,它按

MATLAB语言规则将命令及MATLAB内置函数有机地组合在一起,从而实现强大的功能。m文

件可以在MATLAB的程序编辑器中编写、也可以在文本编辑器中编写(后一种方式在编写大

型程序时非常有用),都以“.m”为扩展名加以存储。MATLAB语言中的m文件可以分为命令

文件和函数文件两种。

♦【命令文件】:

命令文件比函数文件简单,没有输入参数和输出参数、只是命令行的组合。

命令文件可以对工作空间变量进行操作、也可以产生新变量。命令文件产生的所有变量

都会保存在工作空间里,用户可以在以后的程序里对它进行操作,除非他们被相关的命

令删除。命令文件调用的方法是,在MATLAB命令窗口直接输入文件名(filename),按

Enter键即可。

【重要提示】:命令文件最好保存在MATLAB7.O'works子目录(工作目录)下,文件名

与内置函数及工具箱函数不应重名,与命令文件及在工作空间中的变量也不应重名。有

关文件操作的函数,如fopen、close、fprint、fscanf、fread,可利用MATLAB的帮

助文件查看其用法。

32

【示例】:分别绘制花瓣图案:r=2sin32),r=cos(6>),r=sin(0),

r=5cos3(3.56)。

【代码及运行结果】:

»cIear

»theta二一pi:0.01:pi;

»rho(1,:)=2*sin(5*theta)."2;

>>rho(2,:)=cos(10*theta).^3;

»rho(3,:)=sin(theta)."2;

>>rho(4,:)=5*cos(3.5*theta)."3

»fori=1:4

subpIot(2,2,i);

poIar(theta,rho(i,:))

end

♦【函数文件】:

MATLAB中的函数文件是使用扩展名为m的文件,它用来定义一个函数,定义过程中必

须指定函数名和输入输出参数,并由MATLAB语句序列给出一系列的操作和处理,从而生

成所需要的数据。函数文件是扩展MATLAB功能并对其进行二次开发的强有力工具。

【函数文件的格式】:

A函数定义行:函数定义行表明该m文件包含一个函数,并且定义函数名、输入和输

出参数。

A帮助信息第一行:在文件中的位置是第二行,这一行应该反映该m文件概括性的信

息,lookfor(查找)命令只搜索和显示该行。

A帮助正文:从第二行到第一非注释行之间的注释为帮助正文。对文件查询帮助信息

时,将显示第二行和帮助正文。

A函数体:函数体为所有计算机过程和输入输出参数赋值的MATLAB代码,可以是调

用函数、流程控制、交互式输入输出、计算、赋值、注释和空行等。

A注释:注释语句以百分号(%)开头,可以出现在m文件的任何地方,也可以在一

行代码的后面加注释语句,%后的代码部分为不执行部分。

【函数的调用方式】:

I、函数的嵌套调用:一个m函数调用其他函数称为函数的嵌套调用,被调用函数又

可以调用其他函数,这称为函数的多层嵌套调用。

IK函数的递归调用:在调用函数过程中,出现直接或间接调用函数本身的现象,

称为函数的递归调用。递归调用函数中一定要有跳出递归调用的语句,否则函数会无

穷循环下去。

【重要提示】:返回变量多于一个时应使用方括号;函数名与所存的m文件名应同名;

输入变量多于一个时用“,”隔开;注释说明是为了help命令的使用,但空行后不显

示;函数体中可使用错误提示信息:warning,message')。

【示例】:定义一个名为的函数文件,并调用该函数。

【代码及运行结果工

%定义f.0223函数(下述代码另存为工作目录下的f0223.m文件)

FileEditTextGoCellToolsDebugDesktop

D方■|X电(Scc7昌的**

="[喟clii|-[L6-+|+[H-x|%

1functiony=f0233(x)

2-switchx

3-case{1,2}

4-jr=x*0.1;

5-case{3,4}

6-y=x*0.4;

7-otherwise

8-y=x*0.5;

9-end;

»a=2.5

a=

2.5000

»b=f0233(a)%调用函数f.0223

b二

1.2500

»

♦【m文件的调试工

1)m文件错误的种类:有语法错误和执行错误两种:

语法错误:发生在m文件程序代码的解释过程中,一般是函数参数输入类型有误或

者矩阵运算阶数不符;

执行错误:程序运行过程中出现溢出或死循环等造成,执行错误与程序本身有关,

并且较难发现和解决;

程序设计中应尽量避免出现NaN、Inf或空矩阵等,他们是程序运行时最容易出现

问题的地方。可以在容易出现异常数值位置使用控制语句来避免这一问题,识别函数有

isnarixisinf、isempty等。

【示例】:举例说明矩阵阶数不符的语法错误。

【代码及运行结果】:

»A=[1,2;3,4]

A二

12

34

»B=[1,2,3;4,5,6;7,8,9]

B二

123

456

789

»A*B

???Errorusing=>mtimes

Innermatrixdimensionsmustagree.

»

【示例1举例说明识别函数isnan、isinf与isempty的使用方法。

【代码及运行结果】:

»A二NaN

A二

NaN

»B二口

B二

[]

»C二inf

C二

Inf

»isnan(A)

ans二

1

»isinf(C)

ans二

1

»isempty(B)

ans二

1

附录资料:matlab画二次曲面

—*、螺旋线

1.静态螺旋线

a=0:0.1:20*pi;

h=plot3(a.*cos(a),a.*sin(a),2.*a/b'/linewidth',2);

axis([-50,50,-50,50,0,150]);

gridon

set(h/erasemode,/none','markersize,,22);

xlabel(x轴');ylabel(y轴');zlabel(z轴)

title('静态螺旋线’);

2.动态螺旋线

t=0:0.1:10*pi;

i=l;

h=plot3(sin(t(i)),cos(t(i)),t(i)/*,/erasemode7none,);

gridon

axis([-22-22035])

fori=2:length(t)

set(h/xdata',sin(t(i))/ydata',cos(t(i))/zdata,,t(i));

drawnow

pause(O.Ol)

end

title('动态螺旋线,);

(图略)

3.圆柱螺旋线

t=0:0.1:10*pi;

x=r.*cos(t);

y=r.*sin(t);

z=t;

plot3(x,y,z/h'/linewidth\2);

gridon

axis('square')

xlabel('xtt');ylabel('ytt');zlabel('z轴');

title。圆柱螺旋线i)

0

3

二、旋转抛物面

b=0:0,2:2*pi;

[X,Y]=meshgrid(-6:0.1:6);

Z=(X.人2+Y.人2)./4;

meshc(X,Y,Z);

axis('square')

xlabel('xtt');ylabel('ytt');zlabel('z轴');

shadingflat;

title('旋转抛物面’)

或直接用:ezsurfc('(X.A2+Y./K2),/4,)

三、椭圆柱面

loadclown

,,,,,

ezsurf('(2*cos(u))z4*sin(u)zv/[0/2*piz0/2*pi])

view(-105,40)%视角处理

shadinginterp%灯光处理

colormap(map)%颜色处理

gridon%添加网格线

axisequal%使x,y轴比例一致

xlabel('x$ft');ylabel('y轴');zlabel('z轴)

shadingflat;

title。椭圆柱面’)%添加标题

也置住说

6

四、椭圆抛物面

b=0:0,2:2*pi;

[XzY]=meshgrid(-6:0.1:6);

Z=X.人2./9+Y.人2./4;

meshc(X,Y,Z);

axis('square')

xlabel('x$ft');ylabel('ytt');zlabel('z轴1);

shadingflat;

title(椭圆抛物面’)

或直接用:ezsurfc('X.人2./9+Y.人2./4')

五、'双叶双曲面

,,,

ezsurf('8*tan(u)*cos(v)/8.*tan(u)*sin(v)/2.*sec(u),[-pi./2,3*pi./2z0,2*pi])

axisequal

gridon

axissquare

xlabel('x$ft');ylabel('ytt');zlabel('z轴');

shadingflat;

title。双叶双曲面’)

双“或或置

六、双曲柱面

loadclown

,

ezsurf('2*sec(u)72*tan(u)'/v,[-pi/2,pi/2z-3*piz3*pi])

holdon%在原来的图上继续作图

,,

ezsurf('2*sec(u)72*tan(u)'zv,[pi/2/3*pi/2,-3*piz3*pi])

colormap(map)

shadinginterp

view(-15,30)

axisequal

gridon

axisequal

xlabel('xtt');ylabel('ytt');zlabel('z轴');

shadingflat;

title。双曲柱面’)

双自^说

X冲

七、双曲抛物面(马鞍面)

[XzY]=meshgrid(-7:0.1:7);

Z=X.人2./8-Y.人2./6;

meshc(X,YzZ);

view(85,20)

axis('square')

xlabel('x$i');ylabel('ytt');zlabel('z轴');

shadingflat;

title(双曲抛物面’)

或直接用:ezsurfc('X.人2./8-Y.人2./6')

6,

0,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论