MATLAB7.0的矩阵和数组.ppt

上传人:max****ui 文档编号:10974031 上传时间:2020-04-16 格式:PPT 页数:57 大小:332.50KB
返回 下载 相关 举报
MATLAB7.0的矩阵和数组.ppt_第1页
第1页 / 共57页
MATLAB7.0的矩阵和数组.ppt_第2页
第2页 / 共57页
MATLAB7.0的矩阵和数组.ppt_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第三章 MATLAB的矩阵和数组 荆华jinghua123456 MATLAB使用详解 学年选修课 第3章MATLAB7 0的矩阵和数组 教学目标 掌握和了解矩阵和数组的区别 掌握矩阵和数组的相关知识 教学重点 本节主要讲解矩阵和数组的基本结构 基本操作 内容包括矩阵的生成 矩阵的拼接 矩阵的变形 矩阵元素的寻访 获取矩阵的信息 各种特殊矩阵类型的知识 MATLAB中的矩阵 MATLAB的最初雏形是为了解决大规模矩阵运算而编写的一系列函数模块 矩阵作为MATLAB的基本数据结构 一直是MATLAB的核心 是MATLAB基本的运算单元 其大部分的内建函数也都支持矩阵作为输入变量 相应地以矩阵作为输出变量 这使得程序结构更加清晰 代码编写也更加简便 3 1创建矩阵 从形式上看 矩阵可以理解成二维的数组 矩阵可以方便地存储和访问MATLAB中众多数据类型 构成矩阵的元素可以是MATLAB中的任何数据类型 矩阵是所有MATLAB运算的基础 如果要实现科学运算 程序设计 特性绘制等目标 必须要确定矩阵的类型 并建立矩阵 在MATLAB中创建一个矩阵可以有两种常用的方法 一是直接输入矩阵元素 另一种是调用矩阵创建函数 3 1 1输入元素创建简单矩阵 对于简单的矩阵 特别是元素数目不多的矩阵 逐个输入矩阵元素是最常用 最便捷的矩阵创建方法 其遵循以下3条原则 运用矩阵构造符 包含所创建矩阵的所有元素 使用逗号 或者空格 分隔矩阵的列 使用分号 或者回车键分隔矩阵的行 a1 15 21 27 93 101 a2 15 21 27 93 101 a1a1 15212793101 a2a2 15212793101 3 1 1输入元素创建简单矩阵 3 1 2等差元素向量的生成 当矩阵的元素过多 同时矩阵各元素有等差的规律 此时采用直接输入法将过于繁琐 针对该种情况 可以使用冒号 和linspace函数来生成等差元素向量 Linspace功能用法 用于产生x1 x2之间的N点行矢量 其中x1 x2 N分别为起始值 终止值 元素个数 若缺省N 默认点数为100 在matlab的命令窗口下输入helplinspace可以获得该函数的帮助信息 应用举例 X 10 5 60 X 1015202530354045505560 X linspace 10 60 11 X 1015202530354045505560这和X 10 5 60 效果是一样的 3 1 3调用函数创建特殊矩阵 MATLAB7 0还提供了若干特殊矩阵的生成函数 在调用函数时 根据需要设置参数 就可以方便地得到需要的矩阵 常用的特殊矩阵函数列表如下 MATLAB特殊矩阵创建函数 应用举例 X zeros 3 X 000000000 X ones 3 X 111111111 ones是生成一个 全1 单位矩阵 zeros是生成一个零矩阵 可以相当于一个空矩阵 用来给变量申请内存 使运算速度快一些 应用举例 X eye 3 X 100010001单位矩阵 即主对角线元素为1 其余元素全为0 X diag v k 以向量v的元素作为矩阵X的第k条对角线元素 当k 0时 v为X的主对角线 当k 0时 v为主对角线上方第k条对角线 当k v 1 2 3 x diag v 1 x 0000100002000030 应用举例 应用举例 何为魔方 平面魔方的一般定义 将自然数1到N2排列N行N列的方阵 使每行 每列及两条主对角线上的N个数的和都等于N N2 1 2 这样的方阵称为N阶幻方 Magic是Matlab中自动生成魔方矩阵的函数 X magic n n是矩阵维数 应用举例 例如在MATLAB命令窗口输入magic 5 将随机产生5阶魔方阵 X magic 5 X 17241815235714164613202210121921311182529 应用举例 功能 rand函数产生由在 0 1 之间均匀分布的随机矩阵 用法 Y rand n 返回一个n阶的随机矩阵 Y rand m n 或Y rand mn 返回一个m n的随机矩阵 例如 X rand 3 3 X 0 19870 19880 44510 60380 01530 93180 27220 74680 4660 应用举例 功能 产生正态分布的随机数或矩阵的函数 用法 Y randn n 返回一个n n的随机项的矩阵 Y randn m n 或Y randn mn 返回一个m n的随机项矩阵 X randn 3 3 X 0 43260 28771 1892 1 6656 1 1465 0 03760 12531 19090 3273 应用举例 范得蒙 Vandermonde 矩阵最后一列全为1 倒数第二列为一个指定的向量 其他各列是其后列与倒数第二列的点乘积 在MATLAB中 函数vander V 生成以向量V为基础向量的范得蒙矩阵 例如 A vander 1 2 3 4 即可得到4阶范得蒙矩阵 A vander 1 2 3 4 A 1111842127931641641 应用举例 希尔伯特矩阵希尔伯特矩阵是一种数学变换矩阵 在MATLAB中 生成希尔伯特矩阵的函数是X hilb n MATLAB中 有一个专门求希尔伯特矩阵的逆的函数X invhilb n 其功能是求n阶的希尔伯特矩阵的逆矩阵 例如 求4阶Hilbert矩阵及其逆矩阵 在Matlab命令窗口中输入如下代码 H hilb 4 H invhilb 4 应用举例 帕斯卡矩阵我们知道 二次项 x y n展开后的系数随n的增大组成一个三角形表 称为杨辉三角形 由杨辉三角形表组成的矩阵称为帕斯卡 Pascal 矩阵 函数pascal n 生成一个n阶帕斯卡矩阵 例如 求3阶pascal矩阵 pascal 3 ans 111123136 3 2矩阵的拼接 矩阵的拼接是指两个或者两个以上的单个矩阵 按一定的方向进行连接 生成新的矩阵 从本质上说 矩阵的拼接就是一种创建矩阵的特殊方法 区别在于基础元素是原始矩阵 目标是新的合并矩阵 本节主要介绍矩阵拼接的两种方法 一是利用矩阵生成符 另一种是调用矩阵拼接函数 3 2 1基本拼接 通常 矩阵的拼接有按照水平方向拼接和按照垂直方向拼接两种 例如 对矩阵A和B进行拼接 拼接表达式分别如下所示 水平方向拼接 C AB 或C A B 垂直方向拼接 C A B 应用举例 A 1 2 3 4 A 1234 B 5 6 7 8 B 5678 c A B c 12563478 c A B c 12345678 3 2 2拼接函数 除了使用矩阵拼接符 还可以使用MATLAB7 0提供的矩阵拼接函数执行 具体的函数和功能列表如表所示 应用举例 cat 函数用于按指定维连接所输入的矩阵或数组 C cat dim A B 按dim来连结A和B两个矩阵或数组 C cat dim A1 A2 A3 按dim联结所有输入的矩阵或数组 第一个参数表示按第几维进行连接 1表示第一维 即行向 也即垂直方向 2表示第二维 及列向 也即水平方向 即 cat 1 A B 相当于 A B cat 2 A B 相当于 A B 应用举例 A 12 34 B 56 78 AA 1234 BB 5678 cat 1 A B 按行向连接 列数相同 ans 12345678 cat 2 A B 按列向连接 行数相同 ans 12563478 应用举例 C horzcat A1 A2 横向连接矩阵A1 A2 等 参数列表中所有的矩阵必须具有相同的行数 horzcat沿着第二维连接N维数组 余下的维数必须相匹配 C horzcat A1 A2 相当于C A1A2 C vertcat A1 A2 垂直连接矩阵A1 A2 等 参数列表中所有的矩阵必须具有相同的列数 vertcat沿着第一维连接N维数组 余下的维数必须相匹配 C vertcat A1 A2 相当于C A1 A2 应用举例 A 1 2 3 4 A 1234 B 5 6 7 8 B 5678 c horzcat A B c 12563478 c vertcat A B c 12345678 应用举例 blkdiag功能 以输入参数创建块对角矩阵 用法 out blkdiag a b c d 生成以a b c d 为对角线元素的块对角矩阵 其中a b c d 是矩阵 注意 调用blkdiag函数时 原始矩阵a b c d不一定是方阵 互相也不需要尺寸对应 c blkdiag 1 2 3 4 4 5 c 1200340000400005 3 3改变矩阵尺寸 矩阵的尺寸又称矩阵的大小 在MATLAB7 0中 可以方便地对矩阵的尺寸进行扩大和缩小 扩大矩阵的主要方式是拼接和添加元素 缩小矩阵的方式是删除矩阵中的某行或某列元素 3 3 1扩大矩阵的尺寸 在MATLAB7 0中 可以通过两种方式扩大矩阵的尺寸 一是进行矩阵拼接 二是在矩阵的尺寸之外添加元素 前者已经作了介绍 接下来主要介绍如何通过第二重方法来扩大矩阵 应用举例 例 生成一个3阶全1矩阵 并给矩阵添加第2行第4列的元素 X ones 3 X 111111111 X 2 4 3X 111011131110 3 3 2缩小矩阵的尺寸 如果要让矩阵 变小 也就是删除矩阵的某行或某列 只要把目标行或列赋予一个空矩阵 即可 应用举例 a magic 3 a 816357492 a 3 a 813549 a 1 a 357492 应用举例 注意 不能使用双下标删除单个元素 否则系统报错 可以使用线性坐标删除单个或多个元素 a magic 3 a 816357492 a 4 a 3459672 a 1 2 Indexedemptymatrixassignmentisnotallowed 3 4改变矩阵形状 矩阵的形状和矩阵的尺寸一样是可以改变的 MATLAB为用户提供了若干函数 用来改变矩阵的形状 函数名称及功能如表所示 说明 改变矩阵的形状 并不改变矩阵中元素的数量 只改变元素的组成方式 MATLAB矩阵形状操作函数 举例说明 A magic 3 A 816357492 B reshape A 1 9 重新排列矩阵B 834159672 举例说明 A magic 3 A 816357492 C rot90 A 2 C 294753618 3 5向量 标量与空矩阵 MATLAB中的矩阵多数是以矩形的形式显示 但有时常出现特殊形式的矩阵 本节主要介绍三种特殊的矩阵结构 向量 vector 标量 scalar 和空矩阵 emptymatrix 3 5 1向量 向量是行数或列数为1的特殊矩阵 其一般显示为1 n或n 1的数列 在构造新矩阵 以及对矩阵进行访问 修改等操作时 常用到向量数列 MATLAB提供了生成等差向量数列的符号 冒号 例如 p q 生成从p到q 差为1的递增向量数列 例如 创建10 1的等差递减数列 在命令窗口输入代码及执行结果如下 v 10 1 1 v 10987654321 3 5 2标量 标量是行列数都是1的特殊矩阵 任意以1 1的矩阵形式表示的单个实数或复数 称之为标量 如下的实数x就是一个标量 实数5的维数为2 即行和列 且各维数值都为1 x 5x 5 ndims x 查看x的维数ans 2 size x 查看行 列维的数值ans 11 3 5 3空矩阵 MATLAB中为了表示和操作的方便 引入了 空矩阵 的概念 其含义是至少一维的数值为0的矩阵 空矩阵可以是0 0 0 n和n 0 n为正整数 可以通过如下指令建立一个空矩阵a 再利用whos指令查看其名称 大小和数据类型 a a whosNameSizeBytesClassa0 x00doublearray说明 从上面的代码可以看出空矩阵确实存在 并非虚幻不存在 空矩阵并不是0矩阵 空矩阵是没有元素而0矩阵是元素为0的矩阵 两者有本质的区别 3 6矩阵寻访 矩阵作为存储各种数据的基本单位 是若干相关元素的有序集合 为方便用户访问矩阵中的一个或者多个元素 MATLAB引入了元素下标的概念 本节主要介绍不同的元素下标表示方法以及如何利用矩阵的下标访问矩阵中的单元素和多元素 3 6 1下标转换 MATLAB7 0中 矩阵的下标表示与常用的数学习惯相同 使用 双下标 Row ColumnIndex 即分别表示行和列 矩阵中的元素都有对应的 第几行 第几列 这种表示方法简单直观 几何概念比较清晰 如下代码所示 矩阵m中的元素8 5 2分别可以表示为m11 m22 m33 m magic 3 m 816357492 3 6 2访问单元素 访问一个矩阵中的单个元素 必须指定两个参数 即其所在行数和列数 例如 访问矩阵A中的任何一个单元素 代码如下所示 row和column分别代表行数和列数 A row column A 1 2 除双下标外 Matlab还提供了单下标访问方式 两者之间的转换遵循以下方式 一个M N的二维矩阵A中 双下标表示的元素x位置为A p q 即 第p行 第q列 那么元素x对应的单下标u q 1 m p 应用举例 X magic 3 X 816357492 X 2 3 ans 7 P 2 q 3 q 1 m p 8 X 8 ans 7 3 6 3访问多元素 访问矩阵的多元素 包括访问 某一行或某一列的若干元素 访问若干行或若干列的元素 以及访问矩阵所有元素等 首先 介绍在访问矩阵多元素时常用的一个符号 冒号 之前的章节介绍过 冒号可以表示等差向量 其实冒号还有另外一个重要的功能 即表示矩阵中的多个元素 例如A 1 k n 表示矩阵A中第n列的1 k的元素 B m 表示矩阵B中第m行的所有元素 在对矩阵中某部分元素进行访问和赋值时 此种表示方法显得十分方便 3 6 3访问多元素 应用举例 m magic 3 m 816357492 m 1 ans 816 m 1 3 3 ans 672 3 7获取矩阵信息 矩阵的信息主要包括以下三点 矩阵元素的数据类型 矩阵的数据结构 矩阵的大小等 本节重点介绍通过调用函数来获取矩阵各种信息的方法 3 7 1获取矩阵元素的数据类型 MATLAB提供了获得矩阵元素数据类型的若干函数 如表所示 应用举例 a 1 isreal a ans1 isfloat a ans 1 ischar a ans 0 3 7 2获取矩阵的数据结构 MATLAB不但提供了判断矩阵内元素数据类型的函数 还提供了判断矩阵本身数据结构的若干函数 如表所示 MATLAB矩阵元素数据结构判断函数 应用举例 a a isscalar a ans 0 isvector a ans 0 isempty a ans 1 3 7 3获取矩阵的尺寸信息 矩阵的尺寸信息 包括矩阵最长维的大小 矩阵维数 元素个数和指定维的长度等 MATLAB提供给用户4个函数来获取以上信息 矩阵尺寸信息查询函数 应用举例 a rand 4 a 0 95010 89130 82140 92180 23110 76210 44470 73820 60680 45650 61540 17630 48600 01850 79190 4057 length a ndims a numel a size a ans ans ans ans 44244 3 8小结 本节主要介绍MATLAB7 0中的基本数据结构 矩阵和数组 应该熟练掌握的内容如下 矩阵的创建方法矩阵拼接矩阵尺寸大小的改变向量 标量和空矩阵矩阵下标转换矩阵元素的访问矩阵信息的获取
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!