5矩阵及其运算 下载本文

内容发布更新时间 : 2024/11/14 13:17:43星期一 下面是文章的全部内容请认真阅读。

5、矩阵及其运算

矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。下面重点介绍矩阵的生成、矩阵的基本运算和矩阵的数组运算。 5.1 矩阵的生成 若要输入矩阵,则必须在每一列结尾加上分号(;),如下例: A = [1 2 3 4; 5 6 7 8; 9 10 11 12]; A = 1 2 3 4 5 6 7 8 9 10 11 12 1. 直接输入法 从键盘上直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点: ● 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。 ● 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔。 ● 矩阵大小不需要预先定义。 ● 矩阵元素可以是运算表达式。 ● 若“[ ]”中无元素表示空矩阵。 2.利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。利用M文件建立MYMAT矩阵: (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵: (2) 把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,

可供以后使用。 外部文件读入法 可以利用任意的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置。读入矩阵的一种方法可参考数据交换系统。 另外MATLAB语言也允许用户调用在MATLAB环境之外定义的矩阵。可以利用load函数,其调用方法为: Load+文件名[参数] Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,如果该文件在MATLAB搜索路径中不存在时,系统将会报错。 例如: 事先在记事本中建立文件: 1 1 1

(并以data1.txt保存) 1 2 3 1 3 6 在MATLAB命令窗口中输入:

>> load data1.txt >> data1 data1= 1 1 1 1 2 3 1 3 6 3. 利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。 首先,可以用冒号来定义行向量。 例如: >> a=1:0.5:4 a= Columns 1 through 7 1 1.5 2 2.5 3 3.5 4 其次,通过使用冒号,可以截取指定矩阵中的部分。 例如: >> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3

4 5 6 7 8 9 >> B=A (1:2, : ) B= 1 2 3 4 5 6 通过上例可以看到B是由矩阵A的1到2行和相应的所有列的元素构成的一个新的矩阵。在这里,冒号代替了矩阵A的所有列。 在MATLAB中,还可以用linspace函数产生行向量。 其调用格式为: linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。 4.特殊矩阵的生成 对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成

这些矩阵。常用的有下面几个: zeros(m) 生成m阶全0矩阵 eye(m) 生成m阶单位矩阵 ones(m) 生成m阶全1矩阵 rand(m) 生成m阶均匀分布的随机阵 randn(m) 生成m阶正态分布的随机矩阵 我们可以对矩阵进行各种处理: A(2,3) = 5 % 改变位於第二列,第三行的元素值 A = 1 2 3 4 5 6 5 8 9 10 11 12 B = A(2,1:3) % 取出部份矩阵B B = 5 6 5 A = [A B'] % 将B转置後以行向量并入A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:, 2) = [] % 删除第二行(:代表所有列) A = 1 3