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 =
2.2361 =sqrt(5) (c)一个复数的自变量,即复平面中的相角由arg=ang1e(z)求出: a r g= 1.1071为弧度 ●在M AT LA B中也有更高级的预定义数学函数。 第2章简单图形 1.在MATLAB中画图形,其数据必须存储在向量或矩阵中。例如,画出2的 乘幂的图形有三步。首先,创建一个有值的向量。第二,用这些值对函数求 值。第三,画出向量图形: 例如,输入: vector=1 inspace(0,8,l00);%使用0~8之间的100个数值使图形更加光滑。 values =2.vector; %Linspace命令对于创建长向量是非常有效的. clf; %用命令clf清除图形窗口 plot(vector,values);%结果是一个简单图,其刻度是自动给定的 300 250 200 150 100 50 0 2 5 图A-1函数2的分段线性图形 2.二维图形绘图命令 ●p10t(x,y)绘制向量y对向量x的曲线。以x为横坐标,y为纵坐标, 按照坐标(x,y,)的有序排列绘制曲线。 ●p1ot(y)以j为横坐标,y为纵坐标,绘制(j,y)的有序集合的图形。 ● p1ot(z)以横轴为实轴,纵轴为虚轴,绘制(rea1(z),imag(z)) 的有序集合的图形。这样,复数2k就画在复平面上了。 ●p1ot(···,str)使用字符串str指定的颜色和线型进行绘图。 下表列出了str可以取的值。 p1ot(x1,y1,str1,x2,y2,str2,.··)用字 符串str1指定的颜色和线型绘制yl对x1的图形,用字符串str2指定的颜 色和线型绘制y2对x2的图形.··。每组参数值可以采用上述除复数值以外 的任何一种形式。strl,str2··.可以省略,此时,MAT LAB自动为 每条曲线选择颜色和线型
2 . 2 3 6 1 =sqrt(5) (c) 一个复数的自变量,即复平面中的相角由a r g = a n g l e ( z )求出: a r g = 1 . 1 0 7 1为弧度 在M AT L A B 中也有更高级的预定义数学函数。 第 2 章 简单图形 1. 在M AT L A B 中画图形,其数据必须存储在向量或矩阵中。例如,画出2 的 乘幂的图形有三步。首先,创建一个有值的向量。第二,用这些值对函数求 值。第三,画出向量图形; 例如,输入: vector = linspace(0,8,100); %使用0 ~8 之间的100 个数值使图形更加光滑。 values =2.^vector; %Linspace命令对于创建长向量是非常有效的. clf; %用命令clf清除图形窗口 plot(vector,values); %结果是一个简单图,其刻度是自动给定的 2. 二维图形绘图命令 p l o t ( x , y ) 绘制向量y对向量x的曲线。以x 为横坐标,y 为纵坐标, 按照坐标(xj ,yj)的有序排列绘制曲线。 p l o t ( y )以j 为横坐标,yj 为纵坐标,绘制(j, yj)的有序集合的图形。 p l o t ( z )以横轴为实轴,纵轴为虚轴,绘制( r e a l (zk) , i m a g (zk) ) 的有序集合的图形。这样, 复数zk 就画在复平面上了。 p l o t ( . . . , s t r )使用字符串s t r 指定的颜色和线型进行绘图。 下表列出了str可以取的值。 p l o t ( x 1 , y 1 , s t r 1 , x 2 , y 2 , s t r 2 , . . . )用字 符串s t r 1 指定的颜色和线型绘制y1对x1的图形,用字符串str2指定的颜 色和线型绘制y2对x2 的图形. . .。每组参数值可以采用上述除复数值以外 的任何一种形式。str1, str2 . . .可以省略,此时,M AT L A B 自动为 每条曲线选择颜色和线型。 图A-1 函数2 x的分段线性图形
字符串str可以指定图形的颜色和线型。表1列出了允许的值和它们代表的意义。 这些参数可以组合起来使用(%可取表中点、线、色各一),例如,‘y+’表示一 个黄色的加号,而b一一’表示一个蓝色的虚线。如果将要画的是几组数据, 但是没有指定线型,系统将会自动按照表1赋予它们从黄到黑各种不同的颜色线 型 表1.点类型、线类型与颜色 点类型 线类型 ·点 -实线 *星号 一虚线 s q u a r e正方形 -.点划线 :点线 d i a m o n d菱形 none无线 颜色 p e n t a g r a m五角星形 g绿色 h e x a g r a m六角星形 m品红色 none无点 b蓝色 0 0 c灰色 + + w白色 X × r红色 〈顶点指向左边的三角 k黑色 >顶点指向右边的三角 y黄色 正三角 v倒三角 在M AT LA B中,能很容易地画出点: x=-pi:0.05:pi; plot(x,sin(x )*cos(x ),'o ') 0.5 04 0.3 0000000 0.2 0000000 0 0 01 0 0 -0.1 00000ag0o0o00000000600e 0 -02 -0.3 04 000a景m606o000000 -0.5 -3 2 3 p1ot命令对复数矩阵同样适用
字符串s t r可以指定图形的颜色和线型。表1列出了允许的值和它们代表的意义。 这些参数可以组合起来使用(%可取表中点、线、色各一),例如,‘y +’表示一 个黄色的加号,而‘b --’表示一个蓝色的虚线。如果将要画的是几组数据, 但是没有指定线型,系统将会自动按照表1赋予它们从黄到黑各种不同的颜色线 型 表1. 点类型、线类型与颜色 点类型 线类型 .点 * 星号 s q u a r e 正方形 d i a m o n d 菱形 p e n t a g r a m 五角星形 h e x a g r a m 六角星形 n o n e 无点 o o + + x × 顶点指向右边的三角 ^ 正三角 v 倒三角 -实线 - -虚线 -.点划线 :点线 none 无线 颜色 g 绿色 m 品红色 b 蓝色 c 灰色 w 白色 r 红色 k 黑色 y 黄色 在M AT L A B 中,能很容易地画出点: x = -pi : 0.05 : pi ; plot( x , sin( x ).*cos( x ) ,'o '); p l o t 命令对复数矩阵同样适用
clear i;%保证i是复数 r=linspace(0,2);%创建向量r theta=linspace(0,10*pi);%创建角向量0 [x,y]=pol2cart(theta,r);%将弧度坐标转化成复数向量 Z x+i*y plot(z)%对z绘图 1.5 05 -0.5 0 0.5 15 3.命令fp1ot可以绘制出标准的MAT LA B和用户自定义的函数图形。 fp1ot(fcn,1im,str)绘制由字符串fcn指定的函数图形。 这可以是标准函数,也可以是用户在M文件fcn·m中自定义的函数,但不允 许是内联函数。向量1im=[xmin xmax]给出绘图区间范围。该向量也可以包 含四个元素,后两个参数用来表示y轴的区间,即1im=[xmin xmax ymin ymax]。如果使用字符串str,则可以根据表1来改变图形的线型和颜色。 第3章矩阵运算 M AT LAB中的大多数运算可以直接对矩阵应用。 3.1加法和减法 如果矩阵A和B具有相同的维数,那么就可以定义两个矩阵的和A+B和两个矩阵 的差A一B。矩阵A±B,即元素a:,±b:;。在M AT LAB中,一个mXn矩 阵A和一个标量,即一个1×1矩阵s之间也能进行加和减运算。矩阵A+s得到 与A相同的维数,元素为ats。 3.2乘法 ●乘法的运算符是* 命令C=A*B,元素c是A的第i行和B的第j列的点积。矩阵C有与A相同 的行数和与B相同的列数。 A=[345;522;123]; B=[123;111]; C=B*A
clear i ;% 保证i是复数 r = linspace(0 ,2 );% 创建向量r theta = linspace(0 ,10*pi );% 创建角向量θ [ x ,y] = pol2cart(theta ,r );% 将弧度坐标转化成复数向量 z = x+i*y ; plot( z ) % 对z 绘图 3. 命令f p l o t 可以绘制出标准的M AT L A B 和用户自定义的函数图形。 f p l o t ( f c n , l i m , s t r )绘制由字符串f c n 指定的函数图形。 这可以是标准函数,也可以是用户在M 文件f c n . m 中自定义的函数,但不允 许是内联函数。向量l i m= [xmin xmax ]给出绘图区间范围。该向量也可以包 含四个元素,后两个参数用来表示y 轴的区间,即l i m =[ xmin xmax ymin ymax]。如果使用字符串s t r,则可以根据表1来改变图形的线型和颜色。 第 3 章矩阵运算 M AT L A B 中的大多数运算可以直接对矩阵应用。 3.1 加法和减法 如果矩阵A 和B 具有相同的维数,那么就可以定义两个矩阵的和A+B 和两个矩阵 的差A -B 。矩阵A ±B ,即元素ai j±bi j 。在M AT L A B 中,一个m ×n 矩 阵A 和一个标量,即一个1 ×1 矩阵s 之间也能进行加和减运算。矩阵A+s 得到 与A 相同的维数,元素为aij+s 。 3.2 乘法 乘法的运算符是* 命令C = A * B ,元素cij 是A 的第i 行和B 的第j 列的点积。矩阵C 有与A 相同 的行数和与B 相同的列数。 A=[3 4 5 ;5 2 2;1 2 3]; B=[1 2 3;1 1 1]; C=B*A
C= 16 14 18 9 8 10 C=A*B ??Error using ==> Inner matrix dimensions must agree.因为这种矩阵的乘法没有定义 ●命令d0t(x,y)得到具有相同元素数量的两个向量x和y的点积,也 称为标量积或内积。如果点积为零,则两个向量是正交的。 3.3除法 在MAT LA B中,有两个矩阵除法的符号,左除\和右除/。如果A是一个非奇 异方阵,那么A\B和B/A对应A的逆与B的左乘和右乘,即分别等价于命令 inv(A)B和B*inv(A)。 如果A是一个方阵,那么X=AB是矩阵方程AX=B的解AB,这里的X具 有与B相同的维数。在B=b是一个列向量这样一个特殊情况下,X=A\b是线 性系统AX=b的解。 矩阵方程XA=B的解是X=B/A,它等同于(A'\B')',即右除可以由左除 定义。这里,撇号′表示转置 3.4转置和共轭 一个重要的运算是转置和共轭转置,它在M AT L A B中用撇'表示。 ● 如果矩阵A的元素a,是复数,那么矩阵A'在项(i,j)上含有a(共轭)。 ●如果仅希望转置,在撇号之前输入一点.‘,A.‘表示转置,其结果与conj(A) 相同。 3.5元素操作算术运算 算术运算也可以元素与元素逐次进行。如果运算是由一点进行的,那么这个运算 实行的是元素方式。 对于加法和减法,数组运算和矩阵运算没有差别。数组运算符是: 十一 ,米 ■例:假设定义如下矩阵:A=[123;456],B=A A.8= 14 9 16 25 36 3.6元素操作函数 在M AT L A B中预定义的数学标准函数是基于对矩阵元素的运算。 3.7关系运算符 M AT L A B有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行 比较,即矩阵中的每个元素与标量进行比较。 关系运算符如下: 〈小于 〈=小于等于 >大于 〉=大于等于 ==等于 ~=不等于
C = 16 14 18 9 8 10 C=A*B ??? Error using ==> * Inner matrix dimensions must agree. 因为这种矩阵的乘法没有定义 命令d o t ( x ,y )得到具有相同元素数量的两个向量x 和y 的点积,也 称为标量积或内积。如果点积为零,则两个向量是正交的。 3.3 除法 在M AT L A B 中,有两个矩阵除法的符号,左除\和右除/。如果A 是一个非奇 异方阵,那么A \ B 和B / A 对应A 的逆与B 的左乘和右乘,即分别等价于命令 i n v ( A )*B 和B*i n v ( A )。 如果A 是一个方阵,那么X = A \ B 是矩阵方程A X=B 的解A -1B ,这里的X 具 有与B 相同的维数。在B=b 是一个列向量这样一个特殊情况下,x = A \ b 是线 性系统A X=b 的解。 矩阵方程X A=B 的解是X=B / A ,它等同于( A ′\ B ′)′,即右除可以由左除 定义。这里,撇号′表示转置. 3.4 转置和共轭 一个重要的运算是转置和共轭转置,它在M AT L A B 中用撇´表示。 如果矩阵A 的元素ai j 是复数,那么矩阵A´在项(i, j)上含有aji(共轭)。 如果仅希望转置,在撇号之前输入一点.´,A.´表示转置,其结果与conj( A ´ ) 相同。 3.5 元素操作算术运算 算术运算也可以元素与元素逐次进行。如果运算是由一点进行的,那么这个运算 实行的是元素方式。 对于加法和减法,数组运算和矩阵运算没有差别。数组运算符是: +- .* ./ .\ .^ ■例:假设定义如下矩阵:A=[1 2 3;4 5 6],B=A A.*B= 1 4 9 16 25 36 3.6 元素操作函数 在M AT L A B 中预定义的数学标准函数是基于对矩阵元素的运算。 3.7 关系运算符 M AT L A B 有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行 比较,即矩阵中的每个元素与标量进行比较。 关系运算符如下: 大于 > =大于等于 = =等于 ~ =不等于
关系运算符比较对应的元素,产生一个仅包含1和0的具有相同维数的矩阵。其 元素是: 1比较结果是真 0比较结果是假 在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑 运算符。 令A如上例中假设,A中的元素有大于1的吗? G r e a t er T h a n o n e=A>1 ans 0 1 1 1 3.8逻辑运算符 在M AT L A B中有四种逻辑运算符: &与 或 ~非 xor异或 逻辑运算符的运算优先级最低。如同前一节一样,它也能使一个标量与一个矩阵 进行比较。逻辑运算符是按元素比较的。 3.9建立新矩阵 建立1矩阵使用ones命令,这种矩阵的元素全部都是1。相应的建立0矩阵 使用zer0s命令,这种矩阵的元素全部都是0。单位矩阵的对角线元素全部 是1,而其他元素全部是0。建立单位矩阵使用eye命令。 ●1矩阵、零矩阵和单位矩阵 ones(n)建立一个nXn的1矩阵。 ones(m,n,···,p)建立一个mXnX...Xp的1矩阵。 zer0s(n)建立一个nXn的0矩阵。 z e r o s(m,n,··,p)建立一个mXn··.Xp的0矩阵。 eye(n)建立一个nXn的单位矩阵。注意eye命令只能用来建立二维矩 阵。 eye(m,n)建立一个mXn的单位矩阵。注意eye命令只能用来建立二维矩阵。 eye(size(A))建立一个和矩阵A同样大小的单位矩阵。 3.10向量和子矩阵的生成 在MATLAB中可以使用冒号‘:’来代表一系列数值。有时也使用它来定义一 个子矩阵。 我们先给出用冒号来定义向量的方法。 1.数字序列(一) ●i:k创建从i开始、步长为1、到k结束的数字序列,即i,i+1, 1+2,···,k。如果i>k,M AT LA B则返回一个空矩阵,也就是[]。 数字1和k不必是整数,该序列的最后一个数是小于或等于k。 ●i:j:k创建从i开始、步长为l、到k结束的数字序列,即i,i+j,i+ 2j,···,k。对于j0,则返回一个空矩阵。数字i、j和k不必是整 数,该序列的最后一个数是小于或等于k。 ■例
关系运算符比较对应的元素,产生一个仅包含1 和0 的具有相同维数的矩阵。其 元素是: 1 比较结果是真 0 比较结果是假 在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑 运算符。 令A 如上例中假设,A中的元素有大于1 的吗? G r e a t e r T h a n O n e = A > 1 ans = 0 1 1 1 1 1 3.8 逻辑运算符 在M AT L A B 中有四种逻辑运算符: &与 |或 ~非 x o r 异或 逻辑运算符的运算优先级最低。如同前一节一样,它也能使一个标量与一个矩阵 进行比较。逻辑运算符是按元素比较的。 3.9 建立新矩阵 建立1矩阵使用o n e s 命令,这种矩阵的元素全部都是1 。相应的建立0 矩阵 使用z e r o s 命令,这种矩阵的元素全部都是0 。单位矩阵的对角线元素全部 是1 ,而其他元素全部是0 。建立单位矩阵使用e y e 命令。 1 矩阵、零矩阵和单位矩阵 o n e s ( n )建立一个n ×n 的1 矩阵。 o n e s ( m , n ,. . ., p )建立一个m ×n ×. . .×p 的1 矩阵。 z e r o s ( n )建立一个n ×n 的0 矩阵。 z e r o s ( m , n ,. . ., p )建立一个m ×n . . .×p 的0 矩阵。 e y e ( n )建立一个n ×n 的单位矩阵。注意e y e 命令只能用来建立二维矩 阵。 eye(m, n)建立一个m ×n 的单位矩阵。注意e y e 命令只能用来建立二维矩阵。 e y e ( s i z e ( A ) )建立一个和矩阵A 同样大小的单位矩阵。 3.10 向量和子矩阵的生成 在M AT L A B 中可以使用冒号‘:’来代表一系列数值。有时也使用它来定义一 个子矩阵。 我们先给出用冒号来定义向量的方法。 1. 数字序列(一) i : k 创建从i 开始、步长为1 、到k 结束的数字序列,即i ,i+1, i+2, . . . , k 。如果i>k ,M AT L A B 则返回一个空矩阵,也就是[ ]。 数字i 和k 不必是整数,该序列的最后一个数是小于或等于k 。 i : j : k 创建从i 开始、步长为1 、到k 结束的数字序列,即i, i+j, i+ 2j, . . ., k 。对于j= 0 ,则返回一个空矩阵。数字i 、j 和k 不必是整 数,该序列的最后一个数是小于或等于k 。 ■例