t=sqrt(x)
四、矩阵的定义、生成和基本运算
1. 矩阵的创建
① a:逐个元素直接输入 把矩阵元素需用“[ ]”括起来,同行元素
之间用空格或逗号分隔,行与行之间用分号或回车符分隔 矩阵
元素可为运算表达式,无任何元素的矩阵称为空矩阵。例如
x=[1 2 3;4 5 6;7 8 9] y=[1,2,3;4,5,6;7,8,9] k=[sin(pi/7),cos(pi/4)] T=[]
②编写M文件创建大矩阵 对于大型矩阵,可通过编写脚本式M文件,然后运行该文件来创建。例如:编写一名为Example10.m的M文件,内容如下。
%Example10.m
%编写一M文件创建矩阵的示例文件。
emn=[456 344 224 56 36;0 97 665 86 45;29 50 5 124 36;14 38 54 259 178;459 54 145 245 233]
ans =
1/2*k^2-1/2*k ans =
1/2*a^2*x^4+1/2*a*x^2 ans = 1/6*pi^2
③通过函数创建特殊矩阵
%Example.m
%编写一M文件,通过函数创建特殊矩阵的示例文件。
%由函数zeros创建全0矩阵。
N=4;M=3;A=[1 2 3 4 5;2 3 5 6 1;4 4 4 2 5];
- 6 -
B1=zeros(M,N) %生成M×N阶全0阵。 C1=zeros(size(A)) %生成与A同阶的全0阵。 A2=ones(N) %生成N×N阶全1阵。 B2=ones(M,N) %生成M×N阶全1阵。 C2=ones(size(A)) %生成与A同阶的全1阵。 %由函数eye创建单位矩阵。
A2=eye(N) %生成N×N阶单位矩阵 C2=eye(size(A)) %生成与A同阶单位矩阵。 %由函数rand或randn创建随机矩阵。
A3=rand(N) %生成N×N阶均匀分布的随机阵,元素值在(0.0,1.0)区间内。 B3=rand(M,N) %生成M×N阶均匀分布的随机阵。 C3=rand(size(A)) %生成与A同阶阶均匀分布的随机阵。 H=hilb(N) %生成N×N阶Hilbert矩阵。
2. 矩阵元素的引用
①相对位置引用格式:变量名(行标,列标) ②绝对位置引用格式:变量名(绝对位置索引)
clear
rand('state',0) A=rand(5,3)
A(4) %引用距阵A的第四个元素
A(2,3) %引用矩阵A的第二行第三列元素
3. 矩阵元素的抽取 ① 抽取行
clear
rand('state',0) A=rand(5,6)
A(4,:) %抽取矩阵A的第四行
A([2 3],:) %抽取矩阵A的第二行和第三行 B=A([3 3],:) %抽取矩阵A的第三行和第三行赋值给B
C=A(3:end,:) %抽取矩阵A的第三行至最后一行赋值给B
② 抽取列
clear
rand('state',0)
- 7 -
A=rand(5,6)
A(:,3) %抽取矩阵A的第三列
A(:,[1 3]) %抽取矩阵A的第一列和第三列 B=A(:,[3 1]) %抽取矩阵A的第三列和第一列赋值给B
③抽取块
clear
rand('state',0) A=rand(3,4)
B=A([1 2],[2 3]) %抽取矩阵A的第一、二行与第二、三列交叉的元素赋值给B
④抽取矩阵对角线上的元素
clear
rand('state',0)
A=rand(6) %产生(6×6)的均匀分布随机数组 V=diag(A) %抽取矩阵A的主对角线上的元素赋值给向量V D=diag(V) %以向量V为对角线元素生成对角矩阵 D1=diag(V,2) D2=diag(V,-2)
U=diag(A,1) %抽取矩阵A的主对角线上方第一条对角线的元素赋值给向量U L=diag(A,-1) %抽取矩阵A的主对角线下方第一条对角线的元素赋值给向量L
⑤抽取矩阵上三角部分和下三角部分
clear
rand('state',0)
A=rand(5) %产生(5×5)的均匀分布随机数组
U=triu(A,1) %从矩阵A的主对角线上方第一条对角线开始抽取A的上三角部分 U=triu(A,-1) %从矩阵A的主对角线下方第一条对角线开始抽取A的上三角部分 L1=tril(A,1) L2=tril(A,-1)
4. 矩阵的基本数学运算
① 矩阵的四则运算(+ - * / \\)与线性代数理论一致,其中,A\\B=inv(A)*B=A^-1*B。
- 8 -
clear
A=[3 2 3 0;2 1 -4 6] B=[-1 3;4 1;6 0;7 9] C=A+B' D=A*B E=B/D F=D\\A
② 矩阵与常数间的运算(+ - * / \\ ^)同线性代数理论一致,需注注的是,当进行数除时,常数通常只能做除数。
clear
A=[1 2 3 0;2 1 -4 6] C=A+2 D=A*2 E=A/2 F=2\\A
G=A([1 2],[1 2])^2
③ 矩阵的数组运算(.+ .- .* ./ .\\ .^)是指同维数组间对应元素之间的加、减、乘、除和幂运算,其中“.+”和“ .-”分别与“+”和“-”相同,所以,“.+”和“ .-”一般不用。
clear
A=[7 2 8 0;5 1 -4 6] B=A+2 C=A.*B D=A./B E=B.\\A F=A.^2
④ 矩阵的基本初等运算 clear
A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] A(2,:)=A(2,:)*2 %2乘A的第二行
A(1,:)=A(1,:)+A(2,:) %2乘A的第二行,加到A的第一行 A([2 3],:)=A([3 2],:) %交换A的第二行和第三行
- 9 -
⑤ 矩阵的逆运算
clear
A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] B=inv(A)
⑥ 矩阵的行列式运算
clear
A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] B=det(A)
⑦ 矩阵的指数运算
clear
A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] B=expm(A)
⑧ 矩阵的对数运算
clear
A=[4 2 3 2;2 1 4 6;1 3 4 1;6 4 7 9] B=expm(A) C=logm(B) D1=logm(A) D2=log(A)
⑨ 矩阵的开方运算
clear
A=[9 2 3 2;2 1 4 6;1 3 4 1;6 4 7 9] B=A^2
C=sqrtm(B) B1=sqrtm(A) B2=sqrt(A)
5. 矩阵的一些特殊操作
- 10 -
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究实验1 - 熟悉matlab环境及基本操作 (2)全文阅读和word下载服务。
相关推荐: