😃 这次只是MATLAB中一点数组和矩阵的知识,特别基础的简单提了一下,感觉数学建模就足够用了,没有再去深入的学习,多多指教。
一维数组
1.数组的建立
简单数组的建立:
x=[a b c d e] | 创建包含指定元素的行向量 |
x=[a,b,c,d,e] | 创建包含指定元素的行向量 |
x=[a;b;c] | 创建包含指定元素的列向量 |
x=first:last | 创建从first开始,加1计数,到last结束的行向量 |
x=first:increment:last | 创建从first开始,加increment计数,到last结束的行向量 |
linspace(first,last,n) | 创建从first开始,到last结束,有n个元素的行向量。结果等同于x=first:(last-first)/(n-1):last |
x=logspace(first,last,n) | 首点10^first, 末点10^last,有n个元素的行向量 |
>>x1=[1 2 3 4 5 8 7 18]
x2=[1;2;3]
y=1:7
z=3:2:9
v=[y z]
u=linspace(2,9,11)
w=logspace(0,3,4)
结果:
x1=1 2 3 4 5 8 7 18
x2=1
2
3
y=1 2 3 4 5 6 7
z=3 5 7 9
v=1 2 3 4 5 6 7 3 5 7 9
u=2.0000 2.7000 3.4000 4.1000 4.8000 5.5000 6.2000 6.9000 7.6000 8.3000 9.0000
w=1 10 100 1000
2.数组元素的访问
(1)访问一个元素:通过下标,如x(i)表示数组x的第i个元素。
(2)访问一块元素:访问矩阵的某些元素或子块。
x(a : b : c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素,b缺省时为1
x=[1 2 3 4 5 6 7 8 9 10]
y=x(2:2:11)
z=x(10:-3:1)
y=2 4 6 8 10
z=10 7 4 1
(3)直接使用元素编址序号。
m=x([8 2 9 1])
m=8 2 9 1
3.数组的方向
产生列向量的方法:直接产生和转置产生
>>c=[1 2 3 4];
>>b=c'
>>b
b=1
2
3
4
当数组是复数时,转置(b’)产生的是复数共轭转置,而点-转置(b.’)产生的只对数组转置,不进行共轭。对实数b’和b.'等效。
4.数组的运算
(1)标量-数组运算
数组每个元素对标量相应运算
设:a=[a1,a2,a3,···,an],c是标量
a+c=[a1+c,a2+c,a3+c,···,an+c]
a*c=[a1*c,a2*c,a3*c,···,an*c]
a./c=[a1/c,a2/c,a3/c,···,an/c]
a.\c=[c/a1,c/a2,c/a3,···,c/an]
a.^c=[a1^c,a2^c,a3^c,···,an^c]
c.^a=[c^a1,c^a2,c^a3,···,c^an]
(2)数组-数组运算
按元素对元素的范式进行,不同大小或维数的数组不能运算
设:a=[a1,a2,a3,···,an],b=[b1,b2,b3,···,bn]
a+b=[a1+b1,a2+b2,a3+b3,···,an+bn]
a.*b=[a1*b1,a2*b2,a3*b3,···,an*bn]
a./b=[a1/b1,a2/b2,a3/b3,···,an/bn]
a.\b=[b1/a1,b2/a2,b3/a3,···,bn/an]
a.^b=[a1^b1,a2^b2,a3^b3,···,an^bn]
矩阵(二维数组)
1.矩阵的建立
空格或逗号分隔某一行元素,分号区分不同行。除分号Return或Enter键也可。
注:严格要求行列相同。
特殊矩阵 | 说明 |
---|---|
a=[ ] | 空矩阵 |
a=zeros(m,n) | 全0矩阵 |
a=ones(m,n) | 全1矩阵 |
a=eye(m,n) | 单位矩阵 |
a=[1 2 3;4 5 6;7 8 9]
b=[ ]
c=zeros(2,3)
d=ones(2,3)
e=eye(2,3)
f=eye(3,3)
结果:
a=1 2 3
4 5 6
7 8 9
b=[ ]
c=0 0 0
0 0 0
d=1 1 1
1 1 1
e=1 0 0
0 1 0
f=1 0 0
0 1 0
0 0 1
2.矩阵中元素的操作
(1)矩阵A的的第r行:A(r,:)
(2)矩阵A的的第r列:A(:,r)
(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A( : )
(4)取短阵A的第i1 ~ i2 行、第j1 ~ j2方列构成新矩阵:A(i1 : i2 , j1 : j2)
(5)以逆序提取矩阵A的第i1~ i2行,构成新矩阵;A(i2 : -1 : i1 , : )
(6)以逆序提取矩阵A的第j1~ j2列,构成新矩阵:A( : , j2 : -1 : j1 )
(7)删除A的第i1~ i2行,构成新矩阵:A(i1 : i2 , :)=[ ]
(8)删除A的第j1~ j2列,构成新矩阵:A( : , j1 : j2)=[ ]
(9)将短阵A和B拼接成新矩阵:[A B];[A;B]
3.矩阵的运算
(1)标量-矩阵运算:与标量-数组运算类似。
(2)矩阵-矩阵运算:矩阵的元素对元素运算,与数组的类似。
线代中定义的运算:
矩阵加法:A+B
矩阵乘法:A*B
方阵的行列式:det(A)
方阵的逆:inv(A)
方阵的特征值与特征向量:[V,D]=eig(A)