第三讲MATLAB编程_第1页
第三讲MATLAB编程_第2页
第三讲MATLAB编程_第3页
第三讲MATLAB编程_第4页
第三讲MATLAB编程_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、 第三讲 MATLAB编程编程的基本原理:数据输入(Input) 数据处理(算法) 数据输出(Output)1.1 MATLAB数据类型 MATLAB的主要数据类型是数组类型,其中的每一种类型都以数组为基础,都是从数组派生出来的,MATLAB实际上把每种类型的数据作为数组处理。一般把二维数组称为矩阵,1n和n1数组称为向量,11数组称为数值。 数据类型 char numeric cell struc 其它 double single int,uint sparse help datatypes Data types and structures. Data types (classes) do

2、uble - Convert to double precision. char - Create character array (string). logical - Convert numeric values to logical. cell - Create cell array. struct - Create or convert to structure array. single - Convert to single precision. uint8 - Convert to unsigned 8-bit integer. uint16 - Convert to unsig

3、ned 16-bit integer. uint32 - Convert to unsigned 32-bit integer. uint64 - Convert to unsigned 64-bit integer. int8 - Convert to signed 8-bit integer. int16 - Convert to signed 16-bit integer. int32 - Convert to signed 32-bit integer. int64 - Convert to signed 64-bit integer. inline - Construct INLIN

4、E object. function_handle - Function handle array. javaArray - Construct a Java array. javaMethod - Invoke a Java method. javaObject - Invoke a Java object constructor. 1.2 数组输入与寻访1 一维数组的创建和寻访(1)逐个元素输入法这是最简单,但又最通用的构造方法。以下指令就是一例。x=2pi/2sqrt(3)3+5i x = 2.0000 1.5708 1.7321 3.0000 + 5.0000i (2)冒号生成法 这是

5、通过“步长“设定,生成一维“行“数组的方法。该方法的通用格式是;x=a:inc:b说明l a是数组的第一个元素,inc是采样点之间的间隔,即步长。若(b-a)是inc的整数倍,则所生成的数组的最后一个元素等于b,否则小于b。l inc,b之间必须用冒号“;“分隔。注意:该冒号必须在英文状态下产生。中文状态下的冒号将导致MATLAB操作错误!l inc可以省略。省略时,默认其取值为1,即认为inc1。l inc可以取正数或负数。但要注意:inc取正时,要保证ab。x=1:3:11 x = 1 4 7 10 (3)定数线性采样法 该法在设定的“总点数“下,均匀采样生成一维“行“数组。该法的通用格式

6、是:x=linspace(a,b,n)说明l a,b分别是生成数组的第一个和最后一个元素。n是采样总点数。该指令生成数组。l 该指令的作用与x=a:(b-a)/(n-1):b相同。x=linspace(1,11,4) x = 1.0000 4.3333 7.6667 11.0000 (4)定数对数采样法该法在设定的“总点数“下,经“常用对数“采样生成一维“行“数组。通用格式是:x=logspace(a,b,n)说明l 生成数组的第一个元素值为10a,最后一个元素值是10b。n是采样总点数。该指令生成(1n)数组。l 在信号处理和控制学科中,常用该指令去产生频率响应的频率自变量采样点。x=log

7、space(1,4,4) x = 10 100 1000 10000 一维数组的子数组寻访和赋值例1 子数组的寻访(Address)。rand(state,0)%把均匀分布伪随机发生器置为0状态 x=rand(1,5)%产生的均布随机数组 x = 0.9501 0.2311 0.6068 0.4860 0.8913 x(3)%寻访数组x的第三个元素。 ans = 0.6068 x(1 2 5)%寻访数组x的第一、二、五个元素组成的子数组。 ans = 0.9501 0.2311 0.8913 x(1:3)%寻访前三个元素组成的子数组 ans = 0.9501 0.2311 0.6068 x(3

8、:end)%寻访除前2个元素外的全部其他元素。end是最后一个元素的下标。 ans = 0.6068 0.4860 0.8913x(3:-1:1)%由前三个元素倒排构成的子数组 ans = 0.6068 0.2311 0.9501 x(find(x0.5) %由大于0.5的元素构成的子数组 ans =0.9501 0.6068 0.8913 x(1 2 3 4 4 3 2 1) %对元素可以重复寻访,使所得数组长度允许大于原数组。ans = Columns 1 through 7 0.9501 0.2311 0.6068 0.4860 0.4860 0.6068 0.2311 Column 8

9、 0.9501 说明l 寻访什么样的子数组,取决于数组X(index)中下标index。l 下标index本身可以是单个正整数或正整数数组,但index中的每个元素的取值必须在闭区间内1,end。在此,end是指一维数组的长度,即最大下标。end的这种用法是MATLAB 5x版新增的。例2 子数组的赋值(Assign)。x(3) = 0%把上例中的第三个元素重新赋值为0 x = 0.9501 0.2311 0 0.4860 0.8913 x(1 4)=1 1%把当前x数组的第一、四个元素都赋值为1。 x = 1.0000 0.2311 0 1.0000 0.8913 说明要保证被重新赋值的子数

10、组的长度与送入的数组长度相同。2 二维数组的创建二维数组是由实数或复数排列成矩形而构成的。从数据结构上看,矩阵和二维数组没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵。(1)直接输入法例3 在MATLAB环境下,用下面三条指令创建二维数组C。a=2.7358; b=33/79;%这两条指令分别给变量 a ,b 赋值。C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i %这指令用于创建二维数组C C = 1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000i 说明l 分号“;“

11、在“方括号内时,它是数组行间的分隔符。l 分号“;“作为指令后的结束符时,将不在屏幕上显示该指令执行后的结果。例4 复数数组的另一种输入方式。M_r=1,2,3;4,5,6,M_i=11,12,13;14,15,16CN=M_r+i*M_i %由实部、虚部数组构成复数数组 M_r = 1 2 3 4 5 6M_i = 11 12 13 14 15 16CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i 说明l 在“方括号中,逗号“,“

12、是元素与元素间的分隔符。l 逗号“,“用于指令后时,该指令执行后的赋值结果将被显示在屏幕上。(2)利用M文件创建和保存数组 对于今后经常需要调用的数组,尤其是比较大而复杂的数组,为它专门建立一个M文件是值得的。下面通过一个简单例子来说明这种M文件的创建过程。例5 创建和保存数组 AM的 MyMatrix.m 文件。l 打开文件编辑调试器,并在空白填写框中输入以下内容。l 保存此文件,并且文件起名为MyMatrix.m文件l 以后只要在MATLAB指令窗中,运行MyMatrix.m文件,数组AM就会自动生成于MATLAB内存中。(3)利用Array Editor数组编辑器输入数组l 在指令窗,向

13、一个新变量赋“空”矩阵。x=; l 在内存浏览器中,双击该变量,打开数组编辑器。l 在数组编辑器左上方的行和列栏中定义行和列的大小。l 在数组元素格输入数据。 3 数据的保存与获取l 生成mat数据文件把MATLAB工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。save 将工作空间中所有的变量存到matlab.mat文件中。save data 将工作空间中所有的变量存到data.mat文件中。save data a b 将工作空间中a和b变量存到data.mat文件中。l 调用已生成的mat文件下次运行MATLAB时即可用load指令调用已生成的mat文件。load 打开ma

14、tlab.mat文件。load data 打开data.mat文件。load data a b 打开data.mat文件中的a,b变量。mat文件是标准的二进制文件,还可以ASCII码形式保存4 二维数组元素的标识前面采用算例方式介绍了一维子数组的寻访和赋值。在介绍二维或更高维数组中子数组的寻访赋值之前,首先要阐述单个元素标识和寻访的三种方式。(1)“全下标”标识经典数学教科书所引述具体矩阵元素时,采用“全下标“标识法,即指出是“第几行 第几列“的元素。这种标识方法的优点是:几何概念清楚,引述简单。它在MATLAB的寻访和赋值中最为常用。对于二维数组来说,“全下标“标识由两个下标组成:行下标,

15、列下标。如A(3,5)就表示在二维数组A的“第三行第5列“的元素。(2)“单下标”标识顾名思义,“单下标“标识就是“只用一个下标来指明元素在数组中的位置“。当然这样做,首先要对二维数组的所有元素进行“一维编号“。所谓“一维编号“是:先设想把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列“。然后,自上往下对元素位置进行编号。“单下标“与“全下标“的转换关系:以(mn )的二维数组A为例,若“全下标“元素位置是“第r行,第c列“,那么相应的“单下标“为l=(c-l)m+r。MATLAB有两个指令可以实现以上标识方法间的转换。sun2ind据全下标换算出单下标ind2sub据单下标换算出

16、全下标(3)“逻辑1”标识在实际使用中,常会遇到诸如寻找数组中所有大于某值的元素的问题。此时,“逻辑1“标识法就特别得心应手。例6找出数组中所有绝对值大于3的元素。A=zeros(2,5);%预生成一个(2*5)全零数组A(:)=-4:5%运用“全元素”赋值法获得AL=abs(A)3%产生与A同维的“0-1”逻辑值数组islogical(L)%判断L是否逻辑值数组。输出若为1,则是。X=A(L)%把L中逻辑值1对应的A元素取出 A = -4 -2 0 2 4 -3 -1 1 3 5L = 1 0 0 0 1 0 0 0 0 1ans = 1X = -4 4 5 说明l L的元素或是0或是1,它

17、是“逻辑数组“。这种逻辑数组是一种特殊的数据类型。l 所谓“逻辑1“标识法是:通过与A同样的大小的逻辑值数组L中“逻辑值1“所在的位置,指示A中元素的位置。例7 演示逻辑数组与一般双精度数值数组的关系和区别。l 逻辑数组与双精度数组的相同之处Num=1,0,0,0,1;0,0,0,0,1;%产生与L数组外表完全相同的“双精度数组”N_L=Num=L%假如Num与L数值相等,则应得 1 。c_N=class(Num)%用class指令检查Num的类属c_L=class(L)%用class指令检查L的类属 N_L = 1 1 1 1 1 1 1 1 1 1c_N =doublec_L =doubl

18、e l 逻辑数组与一般双精度数组的差别islogical(Num)%检查Num是否属于逻辑数组类Y=A(Num)%试探Num能否象L一样具有标识作用 ans = 0? Index into matrix is negative or zero. See release notes on changes to logical indices. 说明l 该例表明:逻辑数组一方面具有双精度特性,另一方面又区别于一般的双精度数组。l 逻辑数组产生于逻辑函数或逻辑运算,它具有“逻辑标识“能力。l 从本质上说,逻辑数组是双精度数组的子类。它继承了双精度类型数据的全部性质,又有自己特定的属性和能力。这是应用

19、面向对象编程技术的结果。5 二维数组的子数组寻访和赋值明白了前一节的元素标识,就容易理解和掌握二维数组的子数组寻访和赋值,常用的相关指令形式见表。子数组寻访和赋值格式汇总表子数组的寻访和赋值使用说明A(r,c)它由A的“r指定行“和“C指定列“上的元素组成A(r,:)它由A的“r指定行“和“全部列“上的元素组成A(:,c)它由A的“全部行“和“C指定列“上的元素组成A(:)“单下标全元素“寻访,它由A的各列按自左到右的次序,首尾相接而生成“一维长列“数组A(s)“单下标“寻访。生成“s指定的“一维数组“。若s是“行数组“(或“列数组“),则A(s)就是长度相同的“行数组“(或“列数组“A(L)

20、“逻辑1“寻访,生成“一维“列数组:由与A同样大小的“逻辑数组“L中的“1元素“选出A对应元素:按“单下标“次序排成长列组成A(r,c)=Sa以“双下标“方式,对子数组A(r,c)进行赋值:Sa的“行宽、列长“相同A(:)D(:)全元素赋值方式。结果:保持A的“行宽、列长“不变。条件:A、D两个数组的总元素相等,但“行宽、列长“不一定相同A(s)=Sa按“单下标“方式,对A的部分元素重新赋值。结果:保持A的“行宽、列长“不变。条件:s单下标数组的长度必须与“一维数组“Sa长度相等,但是s、Sa不一定同是“行数组“或“列数组“例8不同赋值方式示例。A=zeros(2,4)%创建的全零数组 A =

21、 0 0 0 0 0 0 0 0 A(:)=1:8%全元素赋值方式 A = 1 3 5 7 2 4 6 8 s=2 3 5;%产生单下标数组行数组A(s)%由“单下标行数组”寻访产生A元素组成的行数组Sa=10 20 30%Sa是长度为3的“列数组”A(s)=Sa%单下标方式赋值 ans = 2 3 5Sa = 10 20 30A = 1 20 30 7 10 4 6 8 A(:,2 3)=ones(2)%双下标赋值方式:把A的第2、3列元素全赋为1 A = 1 1 1 7 10 1 1 81.3 数值数组及运算 数值数组(Numeric Array)和数组运算(Array Operation

22、)始终是MATLAB的核心内容。由于MATLAB 5x版以上突出了其“面向对象“的特征,这种数值数组(以下简称为数组)就成了MATLAB最重要的一种内建数据类型(Built in Data Type),而数组运算就是定义在这种数据结构上的方法(Method)。数组是指由一组实数或复数排成的长方阵列(Array)。它可以是一维的“行“或列,它可以是二维的“矩形“,也可以是三维的“若干同维矩形的堆叠“,甚至更高的维数。数组运算是指无论在数组上施加什么运算(加减乘除或函数),总认定那种运算对被运算数组中的每个元素(Element)平等地实施同样的操作。MATLAB精心设计数组和数组运算的目的在于:(

23、1)使计算程序简单、易读,使程序指令更接近于教科书上的数学计算公式:(2)提高程序的向量化程度,提高计算效率,节省计算机开销。例9绘制函数在时的曲线。x=0:0.1:1%定义自变量的采样点取值数组y=x.*exp(-x)%利用数组运算计算各自变量采样点上的函数值plot(x,y),xlabel(x),ylabel(y),title(y=x*exp(-x)%绘图 x = Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000y

24、= Columns 1 through 7 0 0.0905 0.1637 0.2222 0.2681 0.3033 0.3293 Columns 8 through 11 0.3476 0.3595 0.3659 0.3679图3.1-1l 第一句指令定义自变量采样数组:以0为起点,每隔01取一个采样点,直到1为止。该数组是“长度“为11的“行数组“,或说成(111)的数组。l 第二句指令中,指数函数exp(X)数组x每个元素求函数值,结果exp(X)数组也是一个(111)的数组。而指令中的运算符“*“,实施数组x和数组exp(X)对应元素之间相乘。因此,所得结果y也是(111)的数组。由此

25、,读者可以看到数组运算避免了烦冗而效率低下的循环运算。l 指令plot,则根据所得的x数组和y数组,绘制曲线。l 另外还要说明一点:对于定义在连续区间(或域)上的函数,进行数值计算时必须对此给定的连续区间进行适当的采样,得到一个采样值数组。数值计算都是关于这种采样数组进行的。1 数组运算的常用函数 上面已经概括地给出了数组运算的定义。下面将更清晰地描述常用函数的数组运算本质,更系统地列出具备数组运算能力的函数名称。为叙述方便又兼顾一般性,表述时以二维数组为例。但本节所列函数对任意维数组都适用。(1) 函数数组运算规则的定义:(2) 执行数组运算的常用函数三角函数和双曲函数名称含义名称含义名称含

26、义acos反余弦asinh反双曲正弦cssh双曲余割acosh反双曲余弦atan正割sec正割acot反余切atan2四象限反正切sech双曲余割acoth反双曲余切atanh反双曲正切sin正弦acsc反余割cos余弦ainh双曲正弦acsch反双曲余割cosh双曲余弦tan正切asec反正割cot余切tanh双曲正切asech反双曲正割coth双曲余切asin反正弦csc余割指数函数名称含义名称含义名称含义exp指数log10常用对数pow22的幂log自然对数log2以2为底的对数sqrt平方根复数函数名称含义名称含义名称含义abs模,或绝对值conj复数共轭real复数实部angle相

27、角imag复数虚部圆整函数和求余函数名称含义名称含义ceil向圆整函数rem求余数fix以0圆整函数round向最近整数圆整函数floor向圆整函数sign符号函数mod模除求余坐标变换函数名称含义名称含义cart2sph直角坐标变为球坐标pol2cart柱(或)极坐标变为直角坐标cart2pol直角坐标变为柱(或极)坐标sph2cart球坐标变为直角坐标其他特殊函数名称含义名称含义名称含义erf误差函数expint指数积分函数isprime质数为真函数erfc误差补函数gamma函数rats数值有理化函数erfcx刻度误差补函数gammainc不完全函数erfinv逆误差函数gammaln函

28、数的对数例10 演示pow2的数组运算性质。A=1:4;5:8%生成数组 A = 1 2 3 4 5 6 7 8 pow2(A)%计算的结果也是数组 ans = 2 4 8 1632 64 128 256 2 数组运算和矩阵运算从外观形状和数据结构上看,二维数组和(数学中的)矩阵没有区别。但是,矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则。而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方便、操作简单指令形式自然和执行计算的有效。两者运算有根本区别。数组运算和矩阵运算指令对照汇总矩阵运算指令含义数组运算指令含义A共轭转置A.非共轭转置A+B矩阵相加A.+B对

29、应元素相加A-B矩阵相减A.-B对应元素相减s+B标量s分别与B元素之和s-B标量s分别与B元素之和A*B内维相同矩阵的乘积A.*B对应元素相乘s*B标量s分别与B元素之积s.*A标量s分别与B元素之积A/BA右除BA./BA元素被B的对应元素除BAA左除BB.AA元素被B的对应元素除inv(B)B矩阵的逆s./B,B./Ss分别与被B元素除AnA为方阵,自乘n次A.nA每个元素自乘n次Ap方阵A的非整数乘方A.PA每个元素分别求非整数幂pAA为方阵,标量的矩阵乘方p.A以p为底,分别以A的元素为指数求幂值例21 两种不同转置的比较clear;A=zeros(2,3);A(:)=1:6;%全元

30、素赋值法A=A*(1+i)%运用标量与数组乘产生复数矩阵A_A=A.%数组转置,即非共轭转置A_M=A%矩阵转置,即共轭转置 A = 1.0000 + 1.0000i 3.0000 + 3.0000i 5.0000 + 5.0000i 2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.0000iA_A = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000iA_M = 1.0000 - 1.0000i 2.

31、0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i 矩阵加减和数组加减(相同) a=1 2 3 ;4 5 6;7 8 9; b=1 4 7;8 9 10;11 12 13; c=a+b c = 2 6 10 12 14 16 18 20 22 矩阵与标量的加减(无数组运算) d=c-1 d = 1 5 9 11 13 15 17 19 21 矩阵乘和数组乘 x=2 3 4 5;1 2 2 1; y=0 1 1;1 1 0;0 0 1;1 0 0; z=x*y z = 8 5 6 3

32、 3 3 A=11 12 13 14 15;16 17 18 19 20; B=1 2 3 4 5;6 7 8 9 10; C=A.*B C = 11 24 39 56 75 96 119 144 171 200 矩阵的数乘和数组的数乘(相同) a=2 3 4 5 1 2 2 1; b=a*2 b = 4 6 8 10 2 4 4 2 矩阵除和数组除 有两种除法运算:左除()和右除(/) ab=inv(a)*b b/a=b*inv(a) a=1 2 3 ;4 2 6;7 4 9; b=4;1;2; x=ab x = -1.5000 2.0000 0.5000 x=1 2 3; y=4 5 6;

33、 z1=x.y z2=x./y z1 = 4.0000 2.5000 2.0000 z2 = 0.2500 0.4000 0.5000 矩阵乘方和数组乘方 矩阵乘方分几种情况:l 当 A为方阵,p为大于1的整数时l 当 A为方阵,p为非整数时,若有特征值分解AV=VD,定义Ap=VD.PV-1 A=1 2 3;4 5 6;7 8 9; Ap=A0.3 Ap = 0.6962 + 0.6032i 0.4358 + 0.1636i 0.1755 - 0.2759i 0.6325 + 0.0666i 0.7309 + 0.0181i 0.8292 - 0.0305i 0.5688 - 0.4700i

34、 1.0259 - 0.1275i 1.4830 + 0.2150i V,D=eig(A) AAp=V*diag(D(1,1)0.3,D(2,2)0.3,D(3,3)0.3)/V V = 0.2320 0.7858 0.4082 0.5253 0.0868 -0.8165 0.8187 -0.6123 0.4082 D = 16.1168 0 0 0 -1.1168 0 0 0 -0.0000 AAp = 0.6962 + 0.6032i 0.4358 + 0.1636i 0.1755 - 0.2759i 0.6325 + 0.0666i 0.7309 + 0.0181i 0.8292 - 0

35、.0305i 0.5688 - 0.4700i 1.0259 - 0.1275i 1.4830 + 0.2150i Aap=A.0.3 Aap = 1.0000 1.2311 1.3904 1.5157 1.6207 1.7118 1.7928 1.8661 1.9332 标量的矩阵乘方和标量的数组乘方 特征值分解AV=VD pA=(0.3)A pA = 2.9342 0.4175 -1.0993 -0.0278 0.7495 -0.4731 -1.9898 -0.9184 1.1531 paA=0.3.A paA = 0.3000 0.0900 0.0270 0.0081 0.0024 0.

36、0007 0.0002 0.0001 0.0000 3 数组的关系运算 关系运算符: = = = = =A AX=X=A X = 5 5 5 5 5 5 5 5 5Ax = 1 1 1 1 1 0 0 0 0AX = 1 1 1 1 1 0 0 0 0 4 数组逻辑运算 逻辑运算符 & | A=1, 2, 3;4, 5, 6;B=-1, 0, 0;0, 0.5, 0;AandB=A&BAorB=A|BnotB=B AandB = 1 0 0 0 1 0AorB = 1 1 1 1 1 1notB = 0 1 1 1 0 1 a=1&0+3 a = 1 b=34&1 b = 0 5 特殊运算符

37、冒号(:)l 冒号可以用来输入行向量 a=1:-1/4:1/16 a =1.0000 0.7500 0.5000 0.2500 l 冒号能够从向量、矩阵中挑选指定的元素、行和列 a(:) 将a的全部元素按列拉长生成一个列向量 a(:,j) 得到a的第j列 a(i,:) 得到a的第I列 a(:,j:k) 得到a(: j);a(: j+1);a(: k) a(j:k) 得到a( j);a( j+1);a( k),即拉长后列向量的元素 a=1 2;3 4;5 6 b=a(:) a = 1 2 3 4 5 6b = 1 3 5 2 4 6 a(:)=11:16 a = 11 14 12 15 13 1

38、6 a=1 2 3;4 5 6;7 8 9; c=a(:,2) d=a(3,:) c = 2 5 8d = 7 8 9 e=a(2:3,1:2) f=a(1:2,:) e = 4 5 7 8f = 1 2 3 4 5 6 g=a(3:7) g = 7 2 5 8 3 分号(;)l 在方括号内,表示分隔矩阵的行l 作语句结束符,以分号结束的语句在执行时,不显示运行结果 逗号(,)l 在方括号内,表示分隔矩阵的列 a=1,2,3;4,5,6;7 8 9 a = 1 2 3 4 5 6 7 8 9 l 用于矩阵下标变量时,可分隔元素的下标,如a(2,3)l 用于函数定义或函数调用时,分隔函数的形参或

39、实参l MATLAB的程序可以一行多个语句,语句之间以逗号相隔 圆括号()l 作为一个运算符,()中表达式可优先运算l ()出现在函数中,括号中放置函数参数l 生成向量的非直接下标 a=3 6 9 2 4 8 9; b=2 6 4; a(b) ans = 6 8 2 l 生成矩阵的非直接下标 A=1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25; v=4 2;w=2 4;B=A(v,w)A(1 5,:)=A(5 1,:) B = 17 19 7 9A = 21 22 23 24 25 6 7 8 9 10 11 12 1

40、3 14 15 16 17 18 19 20 1 2 3 4 5 方括号l 用于构成向量和矩阵l 用于构成空阵 X = A=1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18;A(:,2 5)= A = 1 3 4 6 7 9 10 12 13 15 16 18 l 当“”和“”出现在赋值号“=”左边时,表示函数返回多项结果a=1 2 3;4 5 6;7 8 9;v,d=eig(a) v = 0.2320 0.7858 0.4082 0.5253 0.0868 -0.8165 0.8187 -0.6123 0.4082d = 16.1168 0 0 0 -1.1168 0 0 0 -0.0000 省略号 用于语句行尾端表示该行未完 b=1+1/2+1/4+1/8+1/16+1/32+1/64+1/128+. +1/256+1/512+1/1024 b =1.99906 常用矩阵的生成单位阵eye(n) eye(m,n) 全一阵ones(n) ones(m,n)全零阵zeros(n) zeros(m,n)均匀分布随机阵rand(n) rand(m,n)正态分布随机阵 randn(n) randn(m,n) rand(3,4) ans

温馨提示

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

评论

0/150

提交评论