matlab矩阵与数值数组

上传人:宝路 文档编号:48382504 上传时间:2018-07-14 格式:PPT 页数:64 大小:533.04KB
返回 下载 相关 举报
matlab矩阵与数值数组_第1页
第1页 / 共64页
matlab矩阵与数值数组_第2页
第2页 / 共64页
matlab矩阵与数值数组_第3页
第3页 / 共64页
matlab矩阵与数值数组_第4页
第4页 / 共64页
matlab矩阵与数值数组_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《matlab矩阵与数值数组》由会员分享,可在线阅读,更多相关《matlab矩阵与数值数组(64页珍藏版)》请在金锄头文库上搜索。

1、第2章 矩阵与数值数组1本章学习目标n掌握数组的创建n理解数组元素的标志方法n掌握子数组的寻访和赋值方法n了解MATLAB的数值、变量与表达式的表示方法n自己通过帮助学习MATLAB常用的运算函数n理解数组运算和矩阵运算的区别n掌握MATLAB的关系运算与逻辑运算n了解“非数”和“空”数组的概念n掌握数组操作函数和高维数组方面的内容n掌握多项式及其运算2主要内容n2.1 数组的创建n2.2 数组元素的标志n2.3 子数组的寻访和赋值n2.4 MATLAB的数值、变量与表达式n2.5 MATLAB常用的运算函数n2.6 数组运算和矩阵运算n2.7 关系运算与逻辑运算n2.8 “非数”和“空”数组

2、n2.9 数组操作函数和高维数组n2.10 多项式及其运算 32.1 数组的创建1. 直接输入法直接输入法就是在命令窗口中直接输入数组中的所有 元素,在输入数组时必须遵循以下的规定。 所有数组元素必须置于“ ”中。 数组元素必须由“,”或空格分隔。 数组的行与行之间必须用“;”标志,或用回车键Enter进 行换行。例如,输入九宫图矩阵,只需在命令窗口直接输入 I = 4 9 2; 8 5 7; 3 1 6 I =4 9 28 5 73 1 642 . 载入外部数据文件载入函数(load function)可以读取由MATLAB早期版本生 成的包含矩阵的二进制文件,或者读取包含数值数据的文本 文

3、件。文本文件中的数字应排列成矩形,每行只能包含矩阵 的一行元素,元素与元素之间用空格分隔,各行元素的个数 必须相等。例如,用Windows自带的记事本或用MATLAB的文本调试 编辑器创建一个包含下列4行数字的文本文件1 2 3 45 6 7 8 9 10111213141516保存该文本为theloadtest.dat文件,在命令窗口中输入 load theloadtest.dat将读取该文件并创建一个变量theloadtest,包含上面的这 个矩阵,在MATLAB工作空间中可以查到这个变量。5【例2-1】 读取二进制数据文件woman.mat。在 MATLAB命令窗口中输入 load wo

4、man %读取二进制数据文件 woman.mat,在工作空间会产生数组X image(X) %以图像的方式显示数组X,如图2.6所示 colormap(map) %设置颜色查找表为map63. 用内置函数生成数组MATLAB还可以利用内置函数直接生成数组。几 种标准数组生成函数及其功能见表2-1。 【例2-2】 标准数组产生的演示。 ones(1,2) %生成一个1行2列的全1数组 ans =1 1 zeros(2) %生成一个2行2列的全0数组 ans =0 00 0 rand(state,0) rand(2,3) %生成一个2行3列的均匀分布随机数组 ans = 0.9501 0.6068

5、 0.89130.2311 0.4860 0.7621 E=eye(3) %生成一个3行3列的单位数组 E =1 0 00 1 00 0 1 84. 利用M文件创建和保存数组可以利用M文件创建数组,M文件是包含MATLAB代码的文本文件。可以用MATLAB自带的文本编辑调试器或别的文本编辑器来创建一个文件,代码和要在MATLAB命令窗口中输入的指令一样就可以,以.m格式保存该文件。9【例2-4】 创建和保存数组TEST的TestMatrix.m。(1) 打开文本编辑调试器,输入以下内容% TestMatrix.m Creation and preservation of matrix TEST

6、TEST= 11,12,13,14,15,16,17,18,19; .21,22,23,24,25,26,27,28,29; .31,32,33,34,35,36,37,38,39;(2) 保存此文件文件名为TestMatrix.m。(3) 以后只要在MATLAB指令窗口中运行 TestMatrix.m文件,就会自动生成数组TEST,并 保存于MATLAB内存中。10以上介绍的4种创建数组的方法既适用于二 维数组的创建,有些方法又完全可以用于高维 数组的创建,后面还将对高维数组做进一步的 介绍。对于一维数组来说更是适用,不过一维 数组形式比较简单,在实际中还有更常用的创 建一维数组的方式,下面

7、以例题的形式给出两 种方法。 11【例2-5】 利用冒号运算符生成一维数组。冒号(:)是MATLAB最重要的运算符之一。它有以 下几种应用方式,输入表达式 1:10可以生成一个包含从110所有整数的行向量1 2 3 4 5 6 7 8 9 10要想获得非单位间隔,可以指定一个步长。例如 100:-7:50100 93 86 79 72 65 58 51又如 0:pi/4:pi得到 0 0.7854 1.5708 2.3562 3.141612【例2-6】 定数线性采样法。该方法的通用格式为x=linspace(a, b, n),相当 于第一个数为a,最后一个数为b,以n为采样点 数等间距采样,

8、生成1n的数组。 例如 x=linspace (1,12,6) 1.0000 3.2000 5.4000 7.6000 9.8000 12.0000 132.2 数组元素的标志为了叙述方便,首先利用内置函数magic( ) 在MATLAB中生成一个四阶幻方矩阵A。 A=magic(4) A =16 2 3 135 11 10 89 7 6 124 14 15 1。141. “全下标”标志对于二维数组来说,“全下标”标志指出是第几行 、第几列的元素。例如,数组A第i行第j列的元素可 以用A(i, j)表示。A(3,4)表示第3行第4列的元素,对 于四阶幻方数组A来说,它的值是12。 2. “单下

9、标”标志“单下标(Linear Index)”标志就是只用一个下标 A(k)来指明元素在数组的位置。这种方式一般用 来标志只有一行或一列的向量的元素。当然也可 以用来标志二维数组的元素,这种情况首先设想15把二维数组的所有列,按先左后右的次序、首尾 相接排成“一维长列”,然后自上往下对元素位置 进行编号。例如,对于四阶幻方数组A来说, A(15)是另外一种标志存储在A(3, 4)中的数值12 的方式。 3. “逻辑1”标志在实际使用中,常会遇到诸如寻找数组中所有符 合某个条件的元素的问题,这时用“逻辑1”标志显得 很方便。假设X是一个普通数组,L是对数组X进行 某种逻辑操作后得到的相同大小的数

10、组,那么X(L) 得到数组X中的符合某个条件的所有元素。16假设有以下一组数据X = 2.1 1.7 1.6 1.5 NaN 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8其中的非数(NaN)是某个观测中一个丢失 的数据的标记,比如某个调查问卷中没有得 到回答的选项。可以用“逻辑1”标志法去除这 个丢失的数据,使用函数isfinite(X)将得到一 个逻辑数组,对于X中的有限值是真,对于 NaN和无穷大(Inf)是假。172.3 子数组的寻访和赋值掌握了2.2节所讲的元素标志方法,就容易理 解数组的元素或子数组的寻访和赋值。下面以例 题的形式来讲解本部分内容。 【例2-

11、7】 一维数组子数组的寻访(Address)和赋值 (Assign)。 rand(state,0) %把均匀分布伪随机发生器置为0状态 X=rand(1,6) %创建均布随机数组 X =0.9501 0.2311 0.6068 0.4860 0.8913 0.762118 X(2) %寻访数组X的第2个元素 ans =0.2311 X(1 3 5) %寻访数组X第1、3、5个元素组成的子数组 ans =0.9501 0.6068 0.8913 X(3) =100 %把上述第3个元素重新赋值为100 x = 0.9501 0.2311 100.0000 0.4860 0.8913 0.76211

12、9【例2-8】 二维数组的子数组寻访和赋值。 A=magic(4) %创建44的幻方矩阵A =16 2 3 135 11 10 89 7 6 124 14 15 1 A(4,:)=0 %第4行赋值为零A =16 2 3 135 11 10 89 7 6 120 0 0 0 A(1:2,1:3) %寻访由数组A的第1、2行和第1、2 、3列指定的子数组ans =16 2 35 11 10202.4 MATLAB的数值、变量与表达式 1. 数值MATLAB的数值采用习惯的十进制表示,可以带小数点及正负号,以下记述都合法100 -10 0.1 1.2345科学计数法采用字符e来表示10的幂,例如1.

13、60210e-20 6.02252e23虚数采用i或j作为扩展名,例如1i -3.14159j 3e5i所有数值存储时采用IEEE规定的浮点数标准的长格式(long format)形式,数值的相对精度是eps,即大约保持有效数字 16位,数值范围大致为10-30810+308。212. 变量MATLAB不需要对变量进行类型声明或维数声明 。当MATLAB遇到一个新的变量名,就自动产生一 个变量并分配一个合适的存储空间。如果变量已经 存在,MATLAB就会改变变量的内容,如果需要还 会分配新的存储空间。例如 num_students = 25创建一个1行1列名称为num_students的矩阵,

14、数 值25存储在该矩阵的单一元素中。变量名由英文字母、数字和下画线组成,并且必 须以字母作为第一个字符。22MATLAB区分大小写,也就是说大写字母和小 写字母是有区别的。A和a不是同一个变量。在MATLAB中对一个变量进行命名的时候,注 意不能使用关键字如for、while等作为变量名, 否则程序就会报错,也不要使用常用的函数名如 sin、cos等作为变量名。在MATLAB中还有一些所谓的预定义变量,每 当MATLAB启动时这些变量就被产生。这些变量 其实是一些特殊函数,规定了有用常量的值(所 以有些教材中把这部分内容放在函数中讲解), 详见表2-2。233. 表达式和大多数别的编程语言一样

15、,MATLAB也具有 数学表达式。但是和大多数编程语言不同, MATLAB中的运算操作尽量设计地接近于习惯, 在有些情况下别的编程语言一次只能处理一个数 据,MATLAB却允许快捷方便地对整个矩阵(数 组)进行操作。MATLAB表达式采用熟悉的数学运算符和优先 级,见表2-3,表中运算符的优先级从上到下依 次升高。242.5 MATLAB常用的运算函数MATLAB提供了大量标准的基本数学函数, 例如abs、sqrt、exp和sin等。对负数求平方根 或对数不会提示错误,而是自动产生适当的复 数结果。MATLAB还提供很多高级的数学函数 ,例如Bessel和gamma函数等。查看基本数学 函数,可以在命令窗口输入

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号