注意:(m)可以换为两个参数(m,n),第一个表示矩阵的行数,第二个表示矩阵的列数,矩阵可以不为方阵例如》》a=eye(4)a=0100010000100001>> b=eye(3,4)b =010001000001>>c=ones(3)c =111111111>> c=ones(3, 2)c=111111函数diag既可以用于创建对角矩阵,又可以引用对角线上的元素.创建对角线元素值确定的矩阵,读者可以先明确地定义对角线元素所确定的向量,然后使用向量名作为输入变量,例如>>V=[1 2 3];>> A=diag(v)A =100020003也可以在输入参数中定义向量,例如:>> B=diag([1 2 3])B =14
14 注意:(m)可以换为两个参数(m,n),第一个表示矩阵的行数,第二个表示矩阵的 列数,矩阵可以不为方阵. 例如 >> a=eye(4) a = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> b=eye(3,4) b = 1 0 0 0 0 1 0 0 0 0 1 0 >> c=ones(3) c = 1 1 1 1 1 1 1 1 1 >> c=ones(3,2) c = 1 1 1 1 1 1 函数 diag 既可以用于创建对角矩阵,又可以引用对角线上的元素.创建对角线元 素值确定的矩阵,读者可以先明确地定义对角线元素所确定的向量,然后使用向量名作 为输入变量. 例如 >> v=[1 2 3]; >> A=diag(v) A = 1 0 0 0 2 0 0 0 3 也可以在输入参数中定义向量,例如: >> B=diag([1 2 3]) B =
100020003要引用已知矩阵对角线上元素的值,同样可以使用函数diag,此时的输入变量为-个矩阵名而不是向量名,例如:>> C=diag(B)C=123(3)外部文件读入法MATLAB语言也允许用户调用在MATLAB环境之外定义的矩阵.例如可以利用1oad函数,其调用方法为:1oad+文件名【参数]load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,所有数据将载入工作间如果该文件在MATLAB搜索路径中不存在时,系统将会报错,例如事先在记事本中建立文件:111123136(并以datal.txt保存)在MATLAB命令窗口中输入:>> load datal.txt>> dataldatal=1111231362、矩阵的基本数学运算矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、秩运算、特征值运算等基本函数运算,这里进行简单介绍,(1)四则运算矩阵的加、减、乘15
15 1 0 0 0 2 0 0 0 3 要引用已知矩阵对角线上元素的值,同样可以使用函数 diag,此时的输入变量为一 个矩阵名而不是向量名,例如: >> C=diag(B) C = 1 2 3 (3)外部文件读入法 MATLAB 语言也允许用户调用在 MATLAB 环境之外定义的矩阵.例如可以利用 load 函数,其调用方法为:load+文件名[参数] load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命 名的变量,如果不给定文件名,则将自动认为 matlab.mat 文件为操作对象,所有数据 将载入工作间.如果该文件在 MATLAB 搜索路径中不存在时,系统将会报错. 例如 事先在记事本中建立文件: 1 1 1 1 2 3 1 3 6 (并以 data1.txt 保存) 在 MATLAB 命令窗口中输入: >> load data1.txt >> data1 data1= 1 1 1 1 2 3 1 3 6 2、矩阵的基本数学运算 矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、 秩运算、特征值运算等基本函数运算,这里进行简单介绍. (1) 四则运算 矩阵的加、减、乘
矩阵的加、减、乘的运算用法与数字运算几乎相同,但计算时要满足其数学要求(如:同型矩阵才可以加、减,相乘的双方要有相邻的公共维)例如>>a=[123;234;345];>>b=[1 11:222:333]:(注意,如上矩阵末尾用“;”结束,则不显示矩阵a,b的结果)>> c=a+bc =324564678>> d=a-bd =012102012>> e=a*ce =283440404958527664矩阵的除法在MATLAB中矩阵的除法有两种形式:左除“\”和右除“/”,在传统的MATLAB算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算逆矩阵直接进行除运算,通常右除要快一点,但左除可避免被除矩阵的奇异性所带来的麻烦.(2)与常数的运算常数与矩阵的运算即是同该矩阵的每一元素进行运算。但需注意进行数除时,常数通常只能做除数.例如>>x=[123;111;031];>> 2+xans =345333253>> 2*Xans =16
16 矩阵的加、减、乘的运算用法与数字运算几乎相同,但计算时要满足其数学要求 (如:同型矩阵才可以加、减,相乘的双方要有相邻的公共维). 例如 >> a=[1 2 3;2 3 4;3 4 5]; >> b=[1 1 1;2 2 2 ;3 3 3]; (注意,如上矩阵末尾用“;”结束,则不显示矩阵 a,b 的结果) >> c=a+b c = 2 3 4 4 5 6 6 7 8 >> d=a-b d = 0 1 2 0 1 2 0 1 2 >> e=a*c e = 28 34 40 40 49 58 52 64 76 矩阵的除法 在 MATLAB 中矩阵的除法有两种形式:左除“\”和右除“/”.在传统的 MATLAB 算 法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算逆矩阵直接进行除运算. 通常右除要快一点,但左除可避免被除矩阵的奇异性所带来的麻烦. (2)与常数的运算 常数与矩阵的运算即是同该矩阵的每一元素进行运算.但需注意进行数除时,常数 通常只能做除数. 例如 >> x=[1 2 3;1 1 1;0 3 1]; >> 2+x ans = 3 4 5 3 3 3 2 5 3 >> 2*x ans =
264222062>> x/2ans =0.50001.00001.50000.50000.50000.500001.50000.5000(3)基本函数运算矩阵的函数运算是矩阵运算中最实用的部分,常用的主要有以下几个:det(a)求矩阵a的行列式eig(a)求矩阵a的特征值inv(a)或a(-1)求矩阵a的逆矩阵rank(a)求矩阵a的秩trace(a)求矩阵a的迹(对角线元素之和)例如>a=[21-3-1;3107:-124-2;10-15]:>> al=det(a)al =-85>> a2=det(inv(a))a2 =-0.0118矩阵的逆矩阵也可以用键盘上的单引号“’”来实现例如>>aans =23-11211004-3-15-17-2表2.2一些关于向量的函数运算sum(x)min(x)向量x的元素的最小值向量x的元素总和向量x的元素总乘积max(x)向量x的元素的最大值prod(x)向量x的元素的平均值向量x和y的内积dot(x, y)mean(x)length(x)向量x的元素个数向量x和y的叉积cross(x,y)(4)对矩阵的其它一些操作引用矩阵中的元素17
17 2 4 6 2 2 2 0 6 2 >> x/2 ans = 0.5000 1.0000 1.5000 0.5000 0.5000 0.5000 0 1.5000 0.5000 (3)基本函数运算 矩阵的函数运算是矩阵运算中最实用的部分,常用的主要有以下几个: det(a) 求矩阵 a 的行列式 eig(a) 求矩阵 a 的特征值 inv(a)或 a ^ (-1) 求矩阵 a 的逆矩阵 rank(a) 求矩阵 a 的秩 trace(a) 求矩阵 a 的迹(对角线元素之和) 例如 >> a=[2 1 –3 –1; 3 1 0 7; -1 2 4 –2; 1 0 –1 5]; >> a1=det(a) a1 = -85 >> a2=det(inv(a)) a2 = -0.0118 矩阵的逆矩阵也可以用键盘上的单引号“’”来实现 例如 >> a' ans = 2 3 -1 1 1 1 2 0 -3 0 4 -1 -1 7 -2 5 表 2.2 一些关于向量的函数运算 min(x) 向量 x 的元素的最小值 sum(x) 向量 x 的元素总和 max(x) 向量 x 的元素的最大值 prod(x) 向量 x 的元素总乘积 mean(x) 向量 x 的元素的平均值 dot(x, y) 向量 x 和 y 的内积 length(x) 向量 x 的元素个数 cross(x,y) 向量 x 和 y 的叉积 (4)对矩阵的其它一些操作 引用矩阵中的元素
如果矩阵v是行向量或列向量,那么用v(k)引用向量中的第k个元素.当矩阵A不是行向量或列向量时,那么用A(mn)来引用矩阵的第m行、n列的元素例如>>v=[123456789]>> v(5)ans =5>>A=[123;4 56;7 89];>> A(2, 3)ans =6也可以使用下标符号给矩阵中的元素赋值,如>>A=[12 3:4 5 6:7 8 9]:>> A(1, 1)=2A =223564798另外通过使用冒号,也可以引用指定矩阵中的部分,例如>>A=[123;456;789];>> B=A (1:2, : )B=123456B是由矩阵A的1到2行和相应的所有列的元素构成的一个新的矩阵:在这里冒号代替了矩阵A的所有列.进一步输入:>》A(:,1)ans =147从向量或矩阵中删除元素通过给矩阵中的元素赋空值的方法能够删除其单个元素或一组元素,例如:>> x=1:5;>> x=[]x =18
18 如果矩阵 v 是行向量或列向量,那么用 v(k)引用向量中的第 k 个元素.当矩 阵 A 不是行向量或列向量时,那么用 A(m,n)来引用矩阵的第 m 行、n 列的元素. 例如 >> v=[1 2 3 4 5 6 7 8 9]; >> v(5) ans = 5 >> A=[1 2 3;4 5 6;7 8 9]; >> A(2,3) ans = 6 也可以使用下标符号给矩阵中的元素赋值,如 >> A=[1 2 3;4 5 6;7 8 9]; >> A(1,1)=2 A = 2 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 的所有列. 进一步输入:>> A(:,1) ans = 1 4 7 从向量或矩阵中删除元素 通过给矩阵中的元素赋空值的方法能够删除其单个元素或一组元素,例如: >> x=1:5; >> x=[] x =