第二节matlab运算基础_第1页
第二节matlab运算基础_第2页
第二节matlab运算基础_第3页
第二节matlab运算基础_第4页
第二节matlab运算基础_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章Matlab运算基础本章内容n掌握matlab变量的定义和特殊变量的使用n掌握数组的建立、提取子数组的方法n掌握常用的矩阵和数组运算函数的调用格式和功能n掌握一些常用指令2.1 变量n变量名必须是以字母开头,由任意字母、数字或者下变量名必须是以字母开头,由任意字母、数字或者下划线所组成,但不能含有空格和标点符号。划线所组成,但不能含有空格和标点符号。 如:如:A,ex_01,var12,SIN都是合法的变量名都是合法的变量名; 7a,lab-1,b%c均是不合法的变量名;均是不合法的变量名;n变量名不能超过变量名不能超过63个字符个字符n变量名区分字母的大小写;变量名区分字母的大小写;n

2、定义的变量名不能与定义的变量名不能与Matlab的内置变量或函数名相重。的内置变量或函数名相重。变量的命名规则:ans默认变量NaN非数eps机器零阈值nargin函数输入参数输入inf无穷大nargout函数输入参数输出i或j虚单元realmax最大正实数pi圆周率realmin最小正实数特殊变量 在MATLAB中,存在一些变量具有特殊的含义和用途。因此,用户在编写程序和指令时,应避免对其重新赋值,以免混淆。n 变量表达式(赋值操作) 将表达式的值计算后赋给变量,其中表达式是用运算符将有关运算量连接起来的式子;n 表达式 将表达式的值赋给临时变量ans变量的赋值注意:若在语句的最后加分号,则

3、注意:若在语句的最后加分号,则matlabmatlab仅执行赋值操作,仅执行赋值操作,但不显示运算结果。若表达式太复杂,一行写不下,可用但不显示运算结果。若表达式太复杂,一行写不下,可用续行符(续行符(3 3个小黑点)并按回车键,而后接着写。个小黑点)并按回车键,而后接着写。示例 在指令窗输入下述语句,并按回车键执行,结果分别赋给变量a、b、c。a=1 %a为标量b=0 1 %b为行向量c=1 2;3 4;5 6 %c为矩阵即二维数组说明:说明:%后为语句注释,不执行。语句后为逗号或没有后为语句注释,不执行。语句后为逗号或没有分号的语句在屏幕上显示出其结果;若结尾带分号,结分号的语句在屏幕上显

4、示出其结果;若结尾带分号,结果不显示。果不显示。 语句执行后,所有的变量都存储在workspace中。n 变量的查询用who或whos指令;n 要删除内存中的变量用clear指令;n 也可在workspace窗口直接进行相应的操作;clear clear 清除工作空间中的所有变量清除工作空间中的所有变量clear var1 var2clear var1 var2 清除工作空间中的变量清除工作空间中的变量var1var1和和var2var2clear all clear all 清除工作空间中所有的变量、全局清除工作空间中所有的变量、全局 变量、编译过的变量、编译过的M M函数和函数和MEXME

5、X链接链接clear fun clear fun 清除工作空间中名为清除工作空间中名为funfun的函数的函数内存变量管理 利用扩展名为.mat的数据文件可把当前MATLAB工作空间中一些有用变量保存下来,以便以后调用。其生成和调入由save和load命令来完成。内存变量文件n 利用菜单项利用菜单项File:Save Workspace AsFile:Save Workspace Asn 在在WorkspaceWorkspace中选择待保存的变量,点击鼠标右键,中选择待保存的变量,点击鼠标右键,选择选择Save asSave as菜单,即可将变量保存到由用户命名的菜单,即可将变量保存到由用户命

6、名的数据文件中。默认保存到数据文件中。默认保存到“当前目录当前目录”下。下。n 利用利用savesave指令。指令。save save 文件名文件名 变量名表变量名表 append append asciiasciil 把变量存入磁盘中l 文件名可带路径,扩展名(.mat)可带可不带。l 变量名表中的变量个数不限,只要内存或文件 中存在即可,变量名之间以空格分隔变量名之间以空格分隔。变量名 表省略时,保存或装入全部变量。l -ascii选项使文件以ASCII格式处理,省略该 选项时文件将以二进制格式处理。l -append选项将变量追加到MAT文件中。n利用菜单项利用菜单项File: Impo

7、rt DataFile: Import Datan利用操作指令利用操作指令LoadLoad(使用方法同使用方法同savesave)数据导出例:以数据文件的形式保存变量X,Y,Z。mkdir(mkdir(d:d:, ,mat_studymat_study); ); % %在在D D盘上创建目录盘上创建目录mat_studymat_studycd d:mat_study cd d:mat_study % %将将d:mat_studyd:mat_study设置为当前目录设置为当前目录save ex17 X Y Z save ex17 X Y Z % %将变量保存成将变量保存成ex17.matex17

8、.mat数据文件数据文件dir dir % %显示目录上的文件显示目录上的文件clearclear % %清除全部内存变量清除全部内存变量 load ex17 X %load ex17 X %导入数据导入数据who %who %查阅内存变量查阅内存变量例:将变量X装入内存。 clear clear % %清除所有内存变量清除所有内存变量 a=1:100;t=2323; a=1:100;t=2323; whos whos % %显示内存变量显示内存变量 save ok a tsave ok a t % %将变量将变量a a和和t t保存至保存至okok a=1;t=2:0.1:3; a=1;t=

9、2:0.1:3; % %赋值赋值 whos whos load ok a t load ok a t % %从从ok.matok.mat文件中导出变量文件中导出变量 whos whos Name Size Bytes Class a 1x100 800 double array t 1x1 8 double arrayGrand total is 101 elements using 808 bytes Name Size Bytes Class a 1x1 8 double array t 1x11 88 double arrayGrand total is 12 elements usin

10、g 96 bytesName Size Bytes Class a 1x100 800 double array t 1x1 8 double arrayGrand total is 101 elements using 808 bytes2.2 数组的创建n数组是MATLAB中存储和运算的基本单元n它是以行列方式组织的数值集合n通过数组名(下标)的方式访问n标量数据被看作11的数组n矢量是一维数组,可分行向量、列向量n矩阵通常被认为是二维的数组二维数组示意图R1R2R3C4C3C1C2A(2,3) A(8)直接输入法n用中括号 表示n通过空格或逗号分隔列元素n通过分号或回车换行分隔行元素n多

11、维数组行列数必须一致n行尾有分号表示无回显 x=1,2,3;4,5,6x = 1 2 3 4 5 6 创建一个从first开始,结束于last,增量为increment的数组,默认值increment为1。冒号生成法 first: increment: last例如:产生一个从0到2的数组,以0.5为间隔。 a=0:0.5:2a = 0 0.5000 1.0000 1.5000 2.0000nlinspace表示创建一个以first开始,last结束,包含number(为一维数组的长度n)个元素的数组nlinspace表示为线性等间隔1n数组,它等价于 x=first:(last-first)

12、/(n-1):lastnlogspace表示以10为底,按对数间隔的1n数组线性/对数定点法valuelastvaluefirst_1010 在指令窗后显示提示信息字符串,等待用户输入数据。交互式生成法(input函数)x=input(提示信息字符串)(提示信息字符串)x=input(提示信息,格式控制)(提示信息,格式控制)例如:例如: x=input( x=input(请输入数据请输入数据x x的值的值:x=):x=) 请输入数据请输入数据x x的值的值: :x= x = 5例:例: reply=input(Do you want more? Y/N:,s) Do you want mor

13、e? Y/N:5y中大规模用数组编辑器双击图标打开双击图标打开array editor;array editor;数组创建之后,将其保存数组创建之后,将其保存为为a.mata.mat文件,使用时只要在指令窗中输入文件,使用时只要在指令窗中输入load a.matload a.mat(可不加后缀名)(可不加后缀名)或利用菜单导入输入即可。或利用菜单导入输入即可。M文件创建法 对于规模庞大而复杂的数组时,打开文件编辑对于规模庞大而复杂的数组时,打开文件编辑器(器(File|Open M-file),File|Open M-file),在空白处输入所需数组在空白处输入所需数组(最后在文件的首行编写文

14、件名和简短说明(最后在文件的首行编写文件名和简短说明, ,以便以便查阅查阅),),而后保存此文件(而后保存此文件(MyMatrix.mMyMatrix.m)。)。 那么以后使用时,只要那么以后使用时,只要在指令窗中直接输入指在指令窗中直接输入指令令MyMatrixMyMatrix,就可运行该文件,就可运行该文件,数组也就会自动,数组也就会自动生成于生成于MATLABMATLAB内存中。内存中。利用MATLAB提供的特殊函数来生成。函数生成法a=-1.3, 2+i; 2+3*i, sqrt(5)a = -1.3000 2.0000 + 1.0000i 2.0000 + 3.0000i 2.236

15、1 t=0:0.1:1t = 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.0000b=linspace(0,2*pi,5)b = 0 1.5708 3.1416 4.7124 6.2832t=logspace(0,2,3)t = % %从从10100 010102 2按对数等分成按对数等分成3 3个点个点 1 10 100ones(2,3) % %生成一个两行三列(生成一个两行三列(2 23 3)矩阵)矩阵ans= 1 1

16、1 1 1 1% %产生(产生(2 23 3)的正态随机阵)的正态随机阵randn(2,3)randn(2,3)ans=ans= -0.4326 0.1253 -1.1 465 -0.4326 0.1253 -1.1 465 -1.6656 0.2877 1.1909 -1.6656 0.2877 1.1909% %产生一个产生一个(2(24)4)在在1 1和和1 1之间均匀分布的数组之间均匀分布的数组 x=2 x=2* *rand(2,4)-1rand(2,4)-1x =x = -0.0280 0.5242 -0.9630 -0.1106 -0.0280 0.5242 -0.9630 -0.

17、1106 0.7826 -0.0871 0.6428 0.2309 0.7826 -0.0871 0.6428 0.23092.3 数组的寻址方法n全下标:即指出行下标、列下标行下标、列下标n单下标:单下标:先把数组的所有列按先左后右的次序先把数组的所有列按先左后右的次序连接成一维长列,然后对元素位置进行编号连接成一维长列,然后对元素位置进行编号 (在在MATLABMATLAB中矩阵元素按照列进行存储,先存第中矩阵元素按照列进行存储,先存第一列,再存第二列,首尾相接,依次类推一列,再存第二列,首尾相接,依次类推) 数组中包含多个元素,因此在引用数组中的某些元素或重新对某些元素赋值时需对元素进行

18、标识。 数组寻址是通过对数组下标的访问实现的。 向量标识nindex必须是正整数(数组)或逻辑值nindex的取值范围是1,enda(index)a(index)例:例:x=1:2:7; y=x; y1=y(3) y2=y(end) y(2)=10y1 = 5y2 = 7y = 1 10 5 7注:end的作用是返回向量的最后一个序号y = 1 3 5 7na(r,c)a(r,c)指定数组指定数组a a中第中第r r行,第行,第c c列的元素列的元素na(r,:)a(r,:)指定数组指定数组a a中第中第r r行所有元素行所有元素na(:,c)a(:,c)指定数组指定数组a a中第中第c c列

19、所有元素列所有元素na(:)a(:)表示表示“一维长列一维长列”,按列排列的所有元,按列排列的所有元素素 二维数组/矩阵的标识a(r,c) a(:,c) a(r,:) a(:)a(r,c) a(:,c) a(r,:) a(:)说明:全下标和单下标标识转换函数分别是 ind=sub2ind(size,i,j) i,j=ind2sub(size,ind)其中:size表示由矩阵行数和列数构成的向量 x=1 2 3;4 5 6x = 1 2 3 4 5 6 x(:,2)ans = 2 5 x(2,:)ans = 4 5 6 x(2,3) ans = 6 x(:)ans = 1 4 2 5 3 6 x

20、(3,3)=9x = 1 2 3 4 5 6 0 0 9 子数组是从数组中取出一部分元素所构成的数组。通常是利用冒号表达式来获得子矩阵。2.4 子数组的获取n A(i)表示提取向量表示提取向量A的第的第i个元素;个元素;n A(i:L:i+m)表示提取向量表示提取向量A的第的第ii+m(增量为(增量为 L)个元素)个元素例:例:a=1.1,-2,3,4+i,5 a1=a(3),a2=a(1 4) a3=a(1:2:5)或或a3=a(1:2:end)n A(:,j) A(:,j)表示取矩阵表示取矩阵A A的第的第j j列全部元素列全部元素n A(i,:)A(i,:)表示取矩阵表示取矩阵A A的第

21、的第i i行全部元素行全部元素n A(i,j)A(i,j)表示取矩阵表示取矩阵A A的第的第i i行、第行、第j j列的元素列的元素n A(i:i+m,:)A(i:i+m,:)表示取矩阵表示取矩阵A A第第i ii+mi+m行的全部元素行的全部元素n A(:,k:k+m)A(:,k:k+m)表示取矩阵表示取矩阵A A第第k kk+mk+m列的全部元素列的全部元素n A(i:i+m,k:k+m)A(i:i+m,k:k+m)表示取矩阵表示取矩阵A A第第i ii+mi+m行内,行内, 并在第并在第k kk+mk+m列的全部元素列的全部元素n 还可利用一般向量和还可利用一般向量和endend运算符来

22、表示矩阵下运算符来表示矩阵下 标,从而获得子矩阵。标,从而获得子矩阵。例:例:a=1 2 3 4;5 6 7 8;9 10 11 12; a(1,:) %取取a的第一行的元素的第一行的元素 a(:,end) %取取a的最后一列的元素的最后一列的元素 a(2,4) %取取a的第二行、第四列的元素的第二行、第四列的元素 a(1:2:4,:) %取取a的第一行和第三行的元素的第一行和第三行的元素 a(:,1:2:end) %取取a的第的第1列和第三列的元素列和第三列的元素a = 1 2 3 4 5 6 7 8 9 10 11 12ans = 1 2 3 4ans = 4 8 12ans = 8ans

23、 = 1 2 3 4 9 10 11 12ans = 1 3 5 7 9 11例:例:a=1 2 3 4;5 6 7 8;9 10 11 12; a1=a(1,2,2,3,4) a2=a(1,2,2,3,1) a3=a(3,1,:) a(1,3,2,4)=zeros(2)a = 1 2 3 4 5 6 7 8 9 10 11 12a1 = 2 3 4 6 7 8a2 = 2 3 1 6 7 5a3 = 9 10 11 12 1 2 3 4a = 1 0 3 0 5 6 7 8 9 0 11 0 数组的赋值a = 1 3 5 2 4 6 数组元素的删除例:例: a=1 2 0;3 4 0;5 6

24、 9 a=1 2 0;3 4 0;5 6 9 a(:,3)= % a(:,3)= %删除第三列元素删除第三列元素 a = 1 2 0 3 4 0 5 6 9a = 1 2 3 4 5 62.5 特殊矩阵例:建立一个例:建立一个3 33 3、3 32 2和与矩阵和与矩阵A A同样大小的同样大小的零矩阵。零矩阵。1 1)建立一个)建立一个3 33 3的零矩阵的零矩阵zeros(3)2 2)建立一个)建立一个3 32 2的零矩阵的零矩阵zeros(3,2)3 3)建立与矩阵)建立与矩阵A A同样大小的零矩阵同样大小的零矩阵zeros(size(A)说明:说明:sizesize用于求矩阵的大小用于求矩

25、阵的大小 length length用于求数组的长度用于求数组的长度例如:在区间例如:在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)2*rand(3,2)-1例如:求均值为例如:求均值为0.6、方差为、方差为0.1的的5阶正态分布阶正态分布 随机矩阵。随机矩阵。例如:求区间在例如:求区间在1, 1内均匀分布的随机矩阵。内均匀分布的随机矩阵。托普利兹矩阵托普利兹矩阵 托普利兹矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。 第一行的矩阵,其中第一行的矩阵,其中x和和y均为向量,两者不均为向量,两者不 必等长。必等长。为为 toeplitz(1:6) 1 2 3 4 5 6 2 1 2 3 4 5 3 2 1 2 3 4 4 3 2 1 2 3 5 4 3 2 1 2 6 5 4 3 2 1x=1 2 3 4y=1 1 1 toeplitz(x,y) 1 1 1 2 1 1 3 2 1 4 3 2注:卷积矩阵的形式与此类似注:卷积矩阵的形式与此类似稀疏矩阵稀疏矩阵 按照稀疏方式存储的数组,即仅存储矩阵所有非零元素的值及其位置(行号、列号),一般用于表示大多数为零的矩阵。 这样可以节省内存和执行时间。 a=eye(100), a=eye(100),

温馨提示

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

评论

0/150

提交评论