您的位置:首页 > 编程语言 > MATLAB

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

2017-06-03 10:34 423 查看

矩阵

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、
4000
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: