资源预览内容
第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
第9页 / 共44页
第10页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
20 Aug 2010 Matlab Programming Language 周金柱 E mail xidian jzzhou Tel 13891824426 电子装备结构设计教育部重点实验室 Key Laboratory of Electronic Equipment Structures of Ministry of Education 第2章 MATLAB矩阵及运算 2 1 Matlab数据 2 2 变量和赋值 2 2 1 变量的命名 2 2 2 赋值语句 2 2 3 数据的输出格式 2 2 4 预定义变量 2 2 5 内存变量的管理 2 3 Matlab矩阵 2 3 1 矩阵的建立 2 3 2 冒号表达式 2 3 3 矩阵的操作 2 3 4 特殊的矩阵 2 1数据 特点 矩阵是MATLAB最基本 最重要的数据对象 向量可以看成是仅有一行或一列的矩阵 单个数据 标量 可以看成是矩阵的特例 一般情况下 矩阵的每个元素必须具有相同的 数据类型 在实际应用中 有时需要将不同类型的 数据构成矩阵的元素 也就是结构体 Structure 和元胞 Cell 数据类型 2 1数据 类型 MATLAB 7 3定义了15种基本的数据类型 包括整型 浮点型 字符型和逻辑型等 用户甚至可以定义自己的数据类型 变量是数值计算的基本单元 MATlab语言与其他高级语言不同 变量使用时无需事先定义 其名称就 是第一次合法出现时的名称 因此使 用起来很便捷 练习 2 2变量和赋值 MATLAB的变量命名规则如下 n 变量名区分字母的大小写 例如 a 和 A 是不同的变量 n 变量名不能超过63个字符 第63个字符后的字符被忽略 n 变量名必须以字母开头 变量名的组成可以是任意字母 数字或者下划线 但不能含有空格和标点符号 如 等 n 不合法例子 1 1 a b a 1 变量1 n 关键字 如if while等 不能作为变量名 n MATLAB提供的标准函数名以及命令名必须用小写字母 练习 2 2 1变量的命名 2 2 2赋值语句 1 变量 表达式 2 表达式 一般地 运算结果在命令窗口中显示出来 如果在语句的最后 加分号 那么 MATLAB仅仅执行赋值操作 不再显示运算的结 果 在MATLAB语句后面可以加上注释 注释以 开头 后面是注 释的内容 例2 1 计算表达式的值 并将结果赋给变量x 然后显示出结 果 在MATLAB命令窗口输入命令 x 5 cos 47 pi 180 1 sqrt 7 2 i 计算表达式的值 练习 2 2 3 数据的输出格式 MATLAB用十进制数表示一个常数 具体可 采用日常记数法和科学记数法两种表示方法 在命令窗口中 默认情况下当数值为整数时 数值计算的结果以整数显示 当数值为实数 时 以小数点后四位的精度近似显示 即以短 short 格式显示 如果数值超过这一范围 则以科学技术法显示结果 例 a 1 a 1 b 3 1416 b 3 1416 c 0 00005 c 5 0000e 005 数值计算结果的显示格式 数据输出时用户可以用format命令设置或改变数据输出格式 format命令的格式为 format 格式符 注意 format命令只影响数据输出格式 而不影响数据的计算 和存储 例 1 format short 314 159 表示为 314 1590 3141 59 表示为 3 1416e 003 2 format short e pi 表示为 3 1416e 000 3 format rat pi 表示为 355 113 2 2 4 预定义变量 在MATLAB工作空间中 还驻留几个由系统本 身定义的变量 它们有特定的含义 在使用时 应尽量避免对这些变量重新赋值 2 2 5 内存变量的管理 1 内存变量的显示与删除 who和whos这两个命令用于显示在Matlab 工作空间中已经驻留的变量名清单 clear命令用于删除MATLAB工作空间中的 变量 注意 预定义变量不能被删除 2 工作空间浏览器 1 工作空间浏览器的启动 2 工作空间浏览器的操作 通常对于较大矩阵的输入 可采用数 组编辑器 操作方法 1 在命令窗口向一个新变量赋空阵 2 在工作空间浏览器中打开该变量 3 在数组编辑器中填写元素值 3 内存变量文件 利用MAT文件 mat 可以把当前MATLAB工作空间中的 一些有用变量长久地保留下来 MAT文件是MATLAB保 存数据的一种标准格式二进制文件 扩展名一定是 mat MAT文件的生成和装入由save和load命令来完成 常用 格式为 save 文件名 变量名表 append ascii load 文件名 变量名表 ascii 假定系统存在am D两个变量 可以将其存放到 mydata mat save mydata am D load mydata am D save d lxm mydata am D load d lxm mydata am D 2 3 Matlab矩阵 Matlab中的数组可以说是无处不在 任何变量都是以数 组型式存储和运算的 在Matlab运算中 经常要用到标量 向量 矩阵和数组 关于名称的定义如下 空数组 empty array 没有元素的数组 标量 scalar 是指1 1的矩阵 即为只含一个数的 矩阵 向量 vector 是指1 n或n 1的矩阵 即只有一行 或者一列的矩阵 矩阵 matrix 是一个矩形的m n数组 即二维数 组 数组 array 是指多维数组m n k 其中矩阵 和向量都是数组的特例 2 3 1 矩阵的建立 在MATLAB中矩阵的创建应遵循以下基 本常规 矩阵元素应用方括号 括住 每行内的元素间用逗号 或空格隔开 行与行之间用分号 或回车键隔开 元素可以是数值或表达式 一 直接输入法 将矩阵的元素用方括号括起来 按矩阵 行的顺序输入各元素 同一行的各元素之 间用空格或逗号分隔 不同行的元素之间 用分号分隔 例如A 1 2 3 4 5 6 7 8 9 也可以用回车键代替分号 2 3 1 矩阵的建立 MATLAB提供对复数的操作与管理功能 虚数单位用i 或j表示 例如 6 5 i与6 5 j表示同一个复数 复数的产生可以有几种方式 z a b i或z a b j z a bi或z a bj 当b为常数时 z r exp i theta z complex a b 复数矩阵还可以采用另一种输入方式 R 1 2 3 4 5 6 Q 2 3 4 7 8 9 z R i Q 2 3 1 矩阵的建立 二 利用M文件建立矩阵 对于比较大且比较复杂的矩阵 可以为它专门 建立一个M文件 例2 2 利用M文件建立MYMAT矩阵 1 启动有关编辑程序或MATLAB文本编辑器 并输入待建矩阵 2 把输入的内容以纯文本方式存盘 设文件名 为mymatrix m 3 输入文件名 运行该M文件 就会自动建立 一个名为MYMAT的矩阵 可供以后使用 2 3 1 矩阵的建立 三 利用MATLAB函数建立矩阵 几个产生特殊矩阵的函数 zeros 产生全0矩阵 零矩阵 ones 产生全1矩阵 么矩阵 eye 产生单位矩阵 rand 产生0 1间均匀分布的随机矩阵 randn 产生0 1间正态分布的随机矩阵 2 3 1 矩阵的建立 这几个函数的调用格式相似 下面以产生零矩阵的 zeros函数为例进行说明 其调用格式是 zeros m 产生m m零矩阵 zeros m n 产生m n零矩阵 zeros size A 产生与矩阵A同样大小的零矩阵 相关的函数有 size A 返回包含2个元素的向量 分别是A的行数 列数 length A 给出行数和列数中的较大者 即 length A max size A ndims A 给出A的维数 reshape A m n 它在矩阵总元素保持不变的前提下 将矩阵A重新排成m n的二维矩阵 2 3 1 矩阵的建立 例2 3 分别建立3 3 3 2和与矩阵A同样大小 的零矩阵 1 建立一个3 3零矩阵 zeros 3 2 建立一个3 2零矩阵 zeros 3 2 3 建立与矩阵A同样大小零矩阵 zeros size A 4 将矩阵xv重新排成2 5 5 2矩阵 xv 23 34 65 67 54 38 78 76 32 56 ym reshape xv 2 5 newym reshape xv 5 2 2 3 1 矩阵的建立 四 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来 例如 A 1 2 3 4 5 6 7 8 9 C A eye size A ones size A A 2 3 1 矩阵的建立 2 3 2 冒号表达式 冒号表达式的一般格式 e1 e2 e3 其中e1为初始值 e2为步长 e3为终止 值 冒号表达式可产生一个由e1开始到e3 结束 以步长e2自增的行向量 在冒号表达式中如果省略e2不写 则步 长为1 当e2省略或e2 0 e1 e3 e2 0 e1 e3都为 空矩阵 1 使用冒号表达式生成向量 linspace a b n 生成线性等分向量 logspace a b n 生成对数等分向量 说明 a b n三个参数分别表示开始值 结束值和 元素个数 linspace函数生成从a到b之间线性分布的n个元 素的行向量 n如果省略则默认值为100 linspace a b n 与a b a n 1 b等价 logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量 n如果省略则默认值为50 2 使用linspace和logspace函数生成向量 2 3 3 矩阵的操作 MATLAB允许用户对一个矩阵的单个元素进行赋值和操作 而不影响 其它元素的值 例如 A ones 4 A 3 2 200 只改变该元素的值 而不影响其他元素的值 如果给出的行下标或列 下标大于原来矩阵的行数和列数 则MATLAB将自动扩展原来的矩阵 并 将扩展后未赋值得矩阵元素置为0 A 4 6 10 也可以采用矩阵元素的序号来引用矩阵元素 矩阵元素按列编号 先 第一列 再第二列 依次类推 A 6 显然 下标 subscrip 与序号 index 是一一对应的 以m n矩阵A为 例 矩阵元素A i j 的序号为 j 1 m i 其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind size A 2 3 c d ind2sub size A 6 1 矩阵元素 1 利用冒号表达式获得子矩阵 A j 表示取A矩阵的第j列全部元素 A i 表示A矩阵第i 行的全部元素 A i j 表示取A矩阵第i行 第j列的元素 A i i m 表示取A矩阵第i i m行的全部元素 A k k m 表示取A矩阵第k k m列的全部元素 A i i m k k m 表示取A矩阵第i i m行内 并在第k k m 列中的所有元素 A 1 2 3 4 5 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 A 2 3 4 5 A 2 3 1 2 5 此外 还可利用一般向量和end运算符等来表示矩阵下标 从而获得子矩阵 end表示某一维的末尾元素下标 A 1 2 3 4 5 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 A end 取A最后一行元素 A 1 4 3 end 取A第1 4行中第3列到最后一列元素 2 利用空矩阵删除矩阵的元素 在MATLAB中 定义 为空矩阵 给变量X赋空 矩阵的语句为X 注意 X 与clear X不同 clear是将X从工作空间 中删除 而空矩阵则存在于工作空间 只是维数为 0 将某些元素从矩阵中删除 采用将其置为空矩阵 的方法就是一种有效的方法 A 1 2 3 4 5 11 12 13 14 15 21 22 23 24 25 31 32 33 3 4 35 A 2 4 删除A的第2列和第4列元素 矩阵的合并就是把两个以上的矩阵连
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号