matlab笔记(2)----矩阵及其运算

来源:互联网 发布:wifi网络质量不佳 编辑:程序博客网 时间:2024/06/07 10:38

矩阵

1、矩阵的建立

1、1直接输入创建矩阵

以左方括号,以逗号或空格为间隔,行与行之间用分号或单击回车键隔开,最后以右方括号结尾即可。另外可以用单引号界定的字符或字符串可以创建字符矩阵。

>> A=[1,2,3;4,5,6;7,8,9]

A =

1 2 3
4 5 6
7 8 9

>> B=[1.1 1.2 1.3;1.4 1.5 1.6]

B =

1.10001.20001.3000
1.40001.50001.6000

>> C='luoluo'

C =

luoluo

1、2矢量法创建矩阵

适量可以由冒号和数字产生,格式:矢量名=初值:增量:终值 矢量是从初值开始,以增量为步长,直到不超过终值的所有元素所构成的序列,注:只能构建一维行数组,

>> A=1:2:10

A =

1 3 5 7 9

1、3函数法创建矩阵

[]:空矩阵
eye:单位矩阵
ones:全部元素都为一的常数矩阵
rand:元素服从0~1之间均匀分布的随机矩阵
zeros:全部元素都为零的矩阵
magic:模仿矩阵
randperm:随机排列整数矩阵
randn:元素从零均值单位方差正太分布的随机矩阵

>> A=[]

A =

[]

>> B=eye(3,4)

B =

1 0 0 0
0 1 0 0
0 0 1 0

>> C=4*ones(5)

C =

4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4

>> D=rand(2,3)

D =

0.81470.12700.6324
0.90580.91340.0975

>> E=randn(2,3)

E =

-0.43363.5784 -1.3499
0.34262.76943.0349

>> F=zeros(3,4)

F =

0 0 0 0
0 0 0 0
0 0 0 0

>> G=randperm(5)

G =

4 5 2 3 1

>> O=magic(4)

O =

16 2 313
51110 8
9 7 612
41415 1

2矩阵的基本运算

2、1矩阵与标量的运算

>> A=[1 2 3;4 5 6];>> b=3;>> c=A+b

c =

4 5 6
7 8 9

>> D=A*b

D =

3 6 9
121518

>> E=A/b

E =

0.33330.66671.0000
1.33331.66672.0000

>> G=A.^b

G =

1 827
64 125 216

2、2矩阵与矩阵的运算

加法运算:两个矩阵的维数完全相同
乘法运算:两个矩阵的维数相容(A的行数等于B的列数)
除法运算:左除,右除
点运算:按照数组运算规则直接运算,矩阵的对应元素直接运算,有.* ./ .\三种。

>> A=[1 2;3 4];>> B=[5 6;7 8];>> C=A*B

C =

1922
4350

>> D=A.*B

D =

512
2132

>> F=A\B

F =

-3-4
4 5

>> E=A/B

E =

3.0000 -2.0000
2.0000 -1.0000

>> H=A.\B

H =

5.00003.0000
2.33332.0000

>> K=A./B

K =

0.20000.3333
0.42860.5000

3、矩阵的操作

3、1元素操作

通过对元素的下标进行

>> A=[1 2 3;4 5 6;7 8 9;11 12 13];>> A(1,2)=1

A =

1 1 3
4 5 6
7 8 9
111213

3、2提取子块

用冒号表达式,冒号表示全部,

>> B=A(1:3,:)

B =

1 1 3
4 5 6
7 8 9

>> C=A(:,1:2)

C =

1 1
4 5
7 8
1112

3、3矩阵和并

C=[A;B]:A和B列数相同
C=[A,B]:A和B行数相同

3、4矩阵的转置

用'(单引号)进行矩阵的转置运算

3、5矩阵的展开

(3,4,5举例)
B=A(:)

>> A=[1 3 5;7 9 11];>> B=[2 4 6];>> C=[1 2 3;5 6 7];>> D=[A;B]

D =

1 3 5
7 911
2 4 6

E=[A,C]

E =

1 3 5 1 2 3
7 911 5 6 7

>> D=D'

D =

1 7 2
3 9 4
511 6

>> F=D(:)

F =

1
3
5
7
9
11
2
4
6

3、6矩阵的线性变换

函数:
diag(A):提取A的对角元素
diag(A,k):提取A的第K条元素
fliplr(A):矩阵A左右翻转
triu(A):提取A的上三角矩阵
tril(A):提取A的下三角矩阵
flipud(A):矩阵A上下翻转

>> A=magic(3)

A =

8 1 6
3 5 7
4 9 2

>> Adiag=diag(A)

Adiag =

8
5
2

>> Atril=tril(A)

Atril =

8 0 0
3 5 0
4 9 2

>> flipud(A)

ans =

4 9 2
3 5 7
8 1 6

4、复数和复数矩阵

1、复数

>> Z=1+2i

Z =

1.0000 + 2.0000i

>> Z=3*exp(i*3.14)

Z =

-3.0000 + 0.0048i
2、复数矩阵

>> a=[1+2i 3+4i;5+6i 7+8i]

a =

1.0000 + 2.0000i 3.0000 + 4.0000i
5.0000 + 6.0000i 7.0000 + 8.0000i

>> a=[1 3;5 7]+i*[2 4;6 8]

a =

1.0000 + 2.0000i 3.0000 + 4.0000i
5.0000 + 6.0000i 7.0000 + 8.0000i

5、稀疏矩阵

sparse(A):A为完全矩阵,将其转化为稀疏矩阵。
sparse(m,n):生成mxn介所有系数为零的稀疏矩阵。
sparse(u,v,s):u,v,s为等长的矢量,u,v是s中元素行和列的下标。建立一个u行、v列和以S为元素的稀疏矩阵。
speye(m,n):生成mxn阶的稀疏矩阵,只有对角线元素为1。
full(A) :A为稀疏矩阵。将稀疏矩阵转化为完全矩阵
[m,n,s]=find(A):A为稀疏矩阵,查看稀疏矩阵,m,n为非零元素下标,s为非零元素

>> A=[0 5 0 0 ;0 0 0 0;12 0 0 0;0 22 0 9];>> B=sparse(A)

B =

(3,1) 12
(1,2) 5
(4,2) 22
(4,4) 9

>> [m,n,s]=find(B)

m =

3
1
4
4

n =

1
2
2
4

s =

12
5
22
9

>> c=full(B)

c =

0 5 0 0
0 0 0 0
12 0 0 0
022 0 9

6、关系运算与逻辑运算

1、关系运算符

>> A=[1 3 5 6 7 8 9];>> B=A>4

B =

0 0 1 1 1 1 1
2、逻辑运算符

>> a=[1 -3 5;0 10 0];>> b=[1 50 0;-3 0.4 12];>> c=a&b

c =

1 1 0
0 1 0

>> d=a|b

d =

1 1 1
1 1 1

>> ~b

ans =

0 0 1
0 0 0

>> xor(a,b) 

ans =

0 0 1
1 0 1

>> any(a)

ans =

1 1 1

>> all(b)

ans =

1 1 0

原创粉丝点击