MATLAB基础知识 第1章MATLAB初步 1.启动和停止 如果想要终止M ATL AB的运行,就要同时按下‘CTRL’和‘c’键。MAT LAB将停止其运行的所有工作,并且在屏幕上给出提示符,等待输入。 借助箭头键,能重复先前所给的命令。如果输入有误,它就能避免再写过长的表 达式,这样能节省很多时间。 帮助命令help command对指定的命令给出帮助 2.基本赋值和计算 ●通常,M AT LA B能被当作计算器使用: 20+30 ans=50 ●同一行上可以有多条命令,以,或:分隔 3.MAT L A B中的变量 ●在M AT L A B中,变量名可以有19个字符。字母A~Z、a~z、数字 和下划线‘’可以作为变量名,但第一个字符必须是一个字母。预定义函数名 也可以像一个变量名那样使用,但函数只有在变量由命令c1ear删除后才能 使用,所以,不主张这样使用。 ●M AT LA B是区分大小字母的,如矩阵a和A是不一样的。M AT LA B命 令通常是用小写字母书写。例如,命令abs(A)给出了A的绝对值,但A BS(A)会导致在屏幕上显示错误信息. ●在变量使用之前,用户不需要指定一个变量的数据类型,也不必声明变量。 M AT L A B有许多不同的数据类型,1 o g i c a1(x)返回一个可以使 用的逻辑向量,例如逻辑索引或逻辑测试。 允许在同一命令行上定义多个变量,也可以在按回车键之前通过输入三个点“…” 以便在下一行继续输入。 定义变量并赋值: x=14*3 42 ●所有的基本数学函数在M AT LA B中有定义 sin(x) %x为弧度 ans= -0.9165 可在数学式子中使用圆括号’()’。 y=(1+2*x)/3; u=sin(x)*y; 注意,在命令行尾的分号‘:’使MATLAB执行赋值命令时,在屏幕上不回显信息。 没有结尾分号的每个命令在屏幕上显示出其结果。 ●MATLAB中的变量通常为向量或矩阵向量:同一行的元素是由空格’或逗 号‘,’分隔,不同行由分号‘:’或回车键分隔。 vco1=[1;2;3;4],vrow=[5678]%行向量和列向量定义法
MATLAB 基础知识 第 1 章 MATLAB 初步 1. 启动和停止 如果想要终止M AT L A B 的运行,就要同时按下‘C T R L ’和‘c ’键。M AT L A B 将停止其运行的所有工作,并且在屏幕上给出提示符,等待输入。 借助箭头键,能重复先前所给的命令。如果输入有误,它就能避免再写过长的表 达式,这样能节省很多时间。 帮助命令 help command 对指定的命令给出帮助 2. 基本赋值和计算 通常,M AT L A B 能被当作计算器使用: 20+30 ans=50 同一行上可以有多条命令,以,或;分隔 3. MAT L A B 中的变量 在M AT L A B 中,变量名可以有1 9 个字符。字母A ~Z 、a ~z 、数字 和下划线‘_’可以作为变量名,但第一个字符必须是一个字母。预定义函数名 也可以像一个变量名那样使用,但函数只有在变量由命令c l e a r 删除后才能 使用,所以,不主张这样使用。 M AT L A B 是区分大小字母的,如矩阵a 和A 是不一样的。M AT L A B 命 令通常是用小写字母书写。例如,命令a b s ( A )给出了A 的绝对值,但A B S ( A )会导致在屏幕上显示错误信息. 在变量使用之前,用户不需要指定一个变量的数据类型,也不必声明变量。 M AT L A B 有许多不同的数据类型,l o g i c a l ( x )返回一个可以使 用的逻辑向量,例如逻辑索引或逻辑测试。 允许在同一命令行上定义多个变量,也可以在按回车键之前通过输入三个点“…” 以便在下一行继续输入。 定义变量并赋值: x=14*3 x= 42 所有的基本数学函数在M AT L A B 中有定义 sin(x) %x为弧度 ans= -0.9165 可在数学式子中使用圆括号’( )’。 y=(1+2*x)/3; u=sin(x)*y; 注意,在命令行尾的分号‘;’使MATLAB执行赋值命令时,在屏幕上不回显信息。 没有结尾分号的每个命令在屏幕上显示出其结果。 MATLAB 中的变量通常为向量或矩阵向量:同一行的元素是由空格‘’或逗 号‘,’分隔,不同行由分号‘; ’或回车键分隔。 vcol=[1;2;3;4],vrow=[5 6 7 8] %行向量和列向量定义法
vcol 2 3 4 vrow 5 678 A=[123;456;789]%矩阵定义法 A= 1 2 3 X 6 7 8 9 注意,各行要用分号隔开。 ●在单个命令中,函数可用于向量或矩阵。 sqrt(vcol) ans 1.0000 1.4142 1.7321 2.0000 ●矩阵逐个元素地置值(矩阵元素表示法): B(1,1)=1: B(1,2)=7; B(2,1)=-5; B(2,2)=0 得到的结果是: B= 1 7 -50 ●创建一个多维矩阵有多种方法。 有两个二维矩阵A和B A=[123;456]:B=[111213;141516]: 可以很容易地构造一个三维矩阵C: C(:,:,1)=A; C(:,:,2)=B; 给出: c(:,:,1)= 2 3 4 6 c(:,:,2)= 1112 13 1415 16 ●显示一个变量的值。输入Vrow,MAT LA B显示: vrow
vcol = 1 2 3 4 vrow = 5 6 7 8 A=[1 2 3; 4 5 6; 7 8 9] %矩阵定义法 A = 1 2 3 4 5 6 7 8 9 注意,各行要用分号隔开。 在单个命令中,函数可用于向量或矩阵。 sqrt(vcol) ans = 1.0000 1.4142 1.7321 2.0000 矩阵逐个元素地置值(矩阵元素表示法): B ( 1 ,1 ) = 1 ; B ( 1 ,2 ) = 7 ; B ( 2 ,1 ) =-5 ; B ( 2 ,2 ) = 0 得到的结果是: B= 1 7 -5 0 创建一个多维矩阵有多种方法。 有两个二维矩阵A 和B A=[1 2 3; 4 5 6];B=[11 12 13; 14 15 16]; 可以很容易地构造一个三维矩阵C : C (:,:,1 ) = A ; C (:,:,2 ) = B ; 给出: c(:,:,1) = 1 2 3 4 5 6 c(:,:,2) = 11 12 13 14 15 16 显示一个变量的值。输入vrow ,M AT L A B 显示: vrow =
5 67 8 ●输入以下命令,可以得到变量列表: who Your variables are: A u vrow x ans vcol y 命令wos也将显示当前的变量,同时还显示出每个变量的其他信息,如是标量 还是向量等。Workspace窗口也显示当前的变量的信息并可修改变量的值. ●MATLAB在程序运行过程中保存所有的变量,清除变量应输入: C l e a r 先前的变量现在全被清除。此时,如果输入wh0,将不会返回任何信息: ●向量可通过使用元素操作运算符来生成。 vector =0:8 vector 0 1 2 3 4 5 6 7 8 vector2=0:0.5:2 vector2 00.5000 1.00001.5000 2.0000 ●命令l i n s p ac e和l og s p a c e也可用来创建向量。 ●通过使用双操作符向量也可直接计算(对各元分别计算)。 values=2 .vector values 1 2 4 816 3264128 256 注意,这里使用的运算符.·表示应对向量中的每一个元素进行操作。 将向量或矩阵放入括号中能定义一个新的表达式,但是大小必须匹配: table=[vector;vector.2] table 0 123 5 6 7 8 0 149 16 25 36 49 64 ●M AT LA B中预定义变量 ans分配最新计算表达式的值,这个表达式并没有给定一个名字。 eps返回机器精度,定义1与最接近可代表的浮点数之间的差。eps数在一 些命令中用作偏差。用户可以设定一个新的eps值,但要注意这个eps值不 能由命令clear恢复。 r e a l m a x返回计算机能处理的最大浮点数。 rea1min返回计算机能处理的最小的非零浮点数。 p1返回π,即3.141592653589793,如果eps足够小,那 么用16位十进制数来表示其精度。 inf定义为1/0。当出现被零除时,MATLAB就返回inf,并不中断执行而 继续计算。 NaN定义为“Not a Number”,这个非数值要么是%类型,要么是inf/in f。 4.算术表达式和数学函数 对十进制数,例如3.14和1·23E一6,后者代表1.23×10
5 6 7 8 输入以下命令,可以得到变量列表: who Your variables are: A u vrow x ans vcol y 命令whos 也将显示当前的变量,同时还显示出每个变量的其他信息,如是标量 还是向量等。Workspace窗口也显示当前的变量的信息并可修改变量的值. MATLAB 在程序运行过程中保存所有的变量,清除变量应输入: C l e a r 先前的变量现在全被清除。此时,如果输入w h o ,将不会返回任何信息; 向量可通过使用元素操作运算符来生成。 vector =0:8 vector = 0 1 2 3 4 5 6 7 8 vector2=0:0.5:2 vector2 = 0 0.5000 1.0000 1.5000 2.0000 命令l i n s p a c e 和l o g s p a c e 也可用来创建向量。 通过使用双操作符向量也可直接计算(对各元分别计算)。 values=2 .^vector values = 1 2 4 8 16 32 64 128 256 注意,这里使用的运算符.^ 表示应对向量中的每一个元素进行操作。 将向量或矩阵放入括号中能定义一个新的表达式,但是大小必须匹配: table=[vector;vector.^2] table = 0 1 2 3 4 5 6 7 8 0 1 4 9 16 25 36 49 64 M AT L A B 中预定义变量 a n s 分配最新计算表达式的值,这个表达式并没有给定一个名字。 e p s 返回机器精度,定义1 与最接近可代表的浮点数之间的差。e p s 数在一 些命令中用作偏差。用户可以设定一个新的e p s 值,但要注意这个e p s 值不 能由命令clear恢复。 r e a l m a x 返回计算机能处理的最大浮点数。 r e a l m i n 返回计算机能处理的最小的非零浮点数。 p i 返回 ,即3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 ,如果e p s 足够小,那 么用1 6 位十进制数来表示其精度。 i n f 定义为1 / 0 。当出现被零除时,MATLAB就返回i n f ,并不中断执行而 继续计算。 N a N 定义为“Not a Number ”,这个非数值要么是%类型,要么是i n f / i n f 。 4. 算术表达式和数学函数 对十进制数,例如3 . 1 4 和1 . 2 3 E -6 ,后者代表1 . 2 3 ×1 0 -6
●M AT LA B有算术运算符的扩展集,它们是: 1)幂 2)*乘 /右除(正常除) 右除2/5得0,4与左除512是相同的, \左除 斜线号“靠着”的表达式或数字是分母。 3)+加一减 1是最高优先级。在带相同优先级的运算符表达式中,按从左到右的顺序执行。 圆括号()能够用于改变优先级次序。 ●M AT LA B包含了预定义数学函数,它们可以用于算术表达式中。如果自 变量是复数,那么,多数情况下返回值也是复数。 abs(x)值,即|x。 sign(x)求x的符号,如果是正的得1;负的得一1;零得0。 sqrt(x)求x的平方根,即。 pow2(x,f)求xX2. exp(x)求x的指数函数,即e。 log(x)求x的自然对数,即1nx。 1og10(x)求x以10为底的对数,即1og10x。 1og2(x)求x以2为底的对数,即1og2x。 sin(x)求正弦x,x为弧度。 cos(x)求余弦x,X为弧度。 tan(x)求正切x,x为弧度。 cot(x)求余切x,即l/(tanx),x为弧度。 asin(x)求反正弦,即sinx。 acos(x)求反余弦,即cosx。 atan(x)求反正切,即tanx。 atan2(x,y)求四象限反正切(x/y),其结果在[一r,r]区间内。 acot(x)求反余切x=四象限反正切(1/x)。 sec(x)求正割x,即1/(cosx)。 csc(x)求余割x,即l/(sinx)。 asec(x)sec 'x=arccos(1/x) acsc(x)求csc-x=a rcsi n(1/x)。 sinh(x)求双曲正弦x。 cosh(x)求双曲余弦x。 tanh(x)求双曲正切x coth(x)求双曲余切x,即l/(tanhx)。 atanh(x)求tanh 'x=0.51n(1+x)/(1-x)。 acoth(x)求coth-x=0.51n(x+1)/(x-1)。 ■例:如果键入s inep i=sin(pi),就得到: sinepi= 1.22466e-16 这个结果并不是精确地为0,因为即i是π的近似值,在计算中有舍入误差。 ●取整命令和有关命令 r o u n d(x)求最接近x的整数。如果x是一个向量,则适用于所有元素。 fix(x)求0方向最接近x的整数。即负x向上四舍五入,正x向下四舍五
M AT L A B 有算术运算符的扩展集,它们是: 1) ^幂 2) *乘 /右除(正常除) 右除2 / 5 得0 . 4 与左除5 \ 2 是相同的, \左除 斜线号“靠着”的表达式或数字是分母。 3) +加 -减 1 是最高优先级。在带相同优先级的运算符表达式中,按从左到右的顺序执行。 圆括号( )能够用于改变优先级次序。 M AT L A B 包含了预定义数学函数,它们可以用于算术表达式中。如果自 变量是复数,那么,多数情况下返回值也是复数。 abs(x)值,即|x|。 sign(x)求x 的符号,如果是正的得1 ;负的得-1 ;零得0 。 sqrt(x)求x 的平方根,即。 pow2(x, f)求x ×2 f. exp(x)求x 的指数函数,即e x。 log(x)求x 的自然对数,即lnx 。 log10(x)求x 以10 为底的对数,即log10x 。 log2(x)求x 以2 为底的对数,即log2x 。 sin(x)求正弦x ,x 为弧度。 cos(x)求余弦x ,x 为弧度。 tan(x)求正切x ,x 为弧度。 cot(x)求余切x ,即1/ (tanx),x 为弧度。 asin(x)求反正弦,即sin -1x 。 acos(x)求反余弦,即cos -1x 。 atan(x)求反正切,即tan -1x 。 atan2( x,y)求四象限反正切(x/y),其结果在[-π,π]区间内。 acot(x)求反余切x=四象限反正切(1/x)。 sec(x)求正割x ,即1/ (cosx)。 csc(x)求余割x ,即1/ (sinx)。 asec(x)求sec -1x=arccos(1/x) acsc(x)求csc -1x=a rcsi n(1/x)。 sinh(x)求双曲正弦x 。 cosh(x)求双曲余弦x 。 tanh(x)求双曲正切x coth(x)求双曲余切x ,即1/( tanhx)。 atanh(x)求tanh -1x= 0.5l n((1 +x)/(1 -x))。 acoth(x)求coth -1x=0.5 ln((x+ 1)/(x -1))。 ■例:如果键入s i n e p i = s i n ( p i ),就得到: sinepi= 1 . 2 2 4 6 6 e -1 6 这个结果并不是精确地为0 ,因为p i 是 的近似值,在计算中有舍入误差。 取整命令和有关命令 r o u n d ( x )求最接近x 的整数。如果x 是一个向量,则适用于所有元素。 f i x ( x )求0 方向最接近x 的整数。即负x 向上四舍五入,正x 向下四舍五
入。 f1oor(x)求小于或等于x的最接近的整数。 ceiI(x)求大于或等于x的最接近的整数。 rem(x,y)求整除x/y的余数。 gCd(X,y)求整数x和y的最大公因子。 ·整数函数 mod(a,b)返回a,b相除后的余数。 ●最大值和最小值 max(x)返回x中最大的元素值,如果x是复数,则返回max(abs(x)) 值。 ●求和 sum(x)返回向量x所有元素的和。 ●复数 在M AT LA B中,大多数情况下是允许复数值表达的。加入变量i和j返回虚 √一1数单位,即的值,能用于产生复数。也可用名字i和j作为变量的名字。 复数变量可以由此产生: ii=s qrt (-1); 由于空格是分隔元素的,因此在书写复数元素时要慎用空格。 ■例:z=3+4i (a)一个较复杂的表达式: w=r*e x p i*t h e t a);c o m p =z w 式中,r和t he t a是一个已经定义的变量。 (b)向量也可以是复数: c o m p l e x v e c t o r=[1-i 2-2i 3-3i 返回: c o m p l e x v e c t or= 1.0000-1.0000i2.0000-2.0000i3.00000-3.0000i 注意,在3与一3i之间的空格使MAT LAB读取它们时看作为两个分隔的复 数。 ●有关复数的函数 rea1(z)求z的实部。 imag(z)求z的虚部。 abs(z)求z的绝对值,即|z模。 conj(z)求z的复数共扼,即z。 ang1e(z)求z的相角,即z=x+iy=re"中的0为弧度。 ■例:令复数z为: 2=1+2i: (a)z的实部和虚部由下面求出: realpart=real(z),imagpart=imag(z); (b)复数共扼由c o n jug a t e=conj(z)求出: con jugate= 1.0000-2.0000i z的绝对值由absz=abs(z)求出: a bs z=
1 入。 f l o o r ( x )求小于或等于x 的最接近的整数。 c e i l ( x )求大于或等于x 的最接近的整数。 rem(x, y)求整除x/y 的余数。 gcd(x, y)求整数x 和y 的最大公因子。 整数函数 m o d ( a , b )返回a ,b 相除后的余数。 最大值和最小值 m a x ( x )返回x 中最大的元素值,如果x 是复数,则返回m a x ( a b s ( x ) ) 值。 求和 s u m ( x )返回向量x 所有元素的和。 复数 在M AT L A B 中,大多数情况下是允许复数值表达的。加入变量i 和j 返回虚 数单位,即的值,能用于产生复数。也可用名字i 和j 作为变量的名字。 复数变量可以由此产生: i i = s q r t (-1 ); 由于空格是分隔元素的,因此在书写复数元素时要慎用空格。 ■ 例 : z=3+4i (a)一个较复杂的表达式: w = r * e x p ( i * t h e t a );c o m p = z * w ; 式中,r 和t h e t a 是一个已经定义的变量。 (b) 向量也可以是复数; c o m p l e x v e c t o r = [ 1-i 2-2i 3 -3i ] 返回: c o m p l e x v e c t o r = 1 . 0 0 0 0 -1.0000i 2.0000 -2.0000i 3.0000 0 -3.0000i 注意,在3 与-3 i 之间的空格使M AT L A B 读取它们时看作为两个分隔的复 数。 有关复数的函数 r e a l ( z )求z 的实部。 i m a g ( z )求z 的虚部。 a b s ( z )求z 的绝对值,即|z|模。 c o n j ( z )求z 的复数共扼,即z 。 a n g l e ( z )求z 的相角,即z=x+i y=re iθ中的θ为弧度。 ■例:令复数z 为: z=1+2i ; (a) z 的实部和虚部由下面求出: realpart=real(z), imagpart=imag(z); (b) 复数共扼由c o n j u g a t e = c o n j ( z )求出: conjugate= 1 . 0 0 0 0 -2 . 0 0 0 0 i z 的绝对值由a b s z = a b s ( z )求出: a b s z =