a=J:K
生成的行向量是
a=[J,J+1,…,K]
a=J:D:K
生成行向量
a=[J,J+D,…,J+m*D],m=fix((K-J)/D)
3
)函数
linspace
用来生成数据按等差形式排列的行向量
x=linspace(X1,X2):
在
X1
和
X2
间生成
100
个线性分布的数据,相邻的两个数据的差保持不变。构成等差数列。
x=linspace(X1,X2,n):
在
X1
和
X2
间生成
n
个线性分布的数据,相邻的两个数据的差保持不变。构成等差数列。
4
)函数
logspace
用来生成等比形式排列的行向量
X=logspace(x1,x2)
在
x1
和
x2
之间生成
50
个对数等分数据的行向量。构成等比数列,数列的第一项
x(1)=10
x1
,x(50)=10
x2
X=logspace(x1,x2,n)
在
x1
和
x2
之间生成
n
个对数等分数据的行向量。构成等比数列,数列的第一项
x(1)=10
x1
,x(n)=10
x2
注:向量的的转置:
x=(0,5)’
2、
矩阵的创建
1)
直接输入:将数据括在
[]
中,同一行的元素用空格或逗号隔开,每一行可以用回车或是分号结束
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
2)
函数
eye
,生成单位矩阵
eye(n) :
生成
n*n
阶单位
E
eye(m,n):
生成
m*n
的矩阵
E
,对角线元素为
1
,其他为
0
eye(size(A))
:生成一个矩阵A大小相同的单位矩阵
eye(m,n,classname):
对角线上生成的元素是
1
,数据类型用
classname
指定。其数据类型可以是:
duoble
、
single
、
int8
、
uint8
、
int16
、
uint16
、
int32
、
uint32
。
3)
函数
ones
用
ones
生成全
1
的矩阵
ones(n) :
生成
n*n
的全
1
矩阵
ones(m,n) :
生成
m*n
的全
1
矩阵
ones(size(A)) :
生成与矩阵
A
大小相同的全
1
矩阵
ones(m,n,p,…)
生成
m*n*p*….
的全
1
的多维矩阵
ones(m,n,…,classname)
制定数据类型为
classname
4)
函数
zeros
函数
zeros
生成全
0
矩阵
zeros(n):
生成
n*n
的全
0
矩阵
zeros(m,n:)
生成
m*n
的全
0
矩阵
zeros(size(A)):
生成与矩阵
A
大小相同的全
0
矩阵
zeros (m,n,p,…)
生成
m*n*p*….
的全
0
的多维矩阵
zeros (m,n,…,classname)
指定数据类型为
classname
5)
函数
rand
函数
rand
用来生成
[0,1]
之间均匀分布的随机函数,其调用格式是:
Y=rand:
生成一个随机数
Y=rand(n):
生成
n*n
的随机矩阵
Y=rand(m,n):
生成
m*n
的随机矩阵
Y=rand(size(A)):
生成与矩阵
A
大小相同的随机矩阵
Y=rand(m,n,p,…):
生成
m*n*p*…
的随机数多维数组
6)
函数
randn
函数
rand
用来生成服从正态分布的随机函数,其调用格式是:
Y=randn:
生成一个服从标准正态分布的随机数
Y=randn(n):
生成
n*n
的服从标准正态分布的随机矩阵
Y=randn(m,n):
生成
m*n
的服从标准正态分布的随机矩阵
Y=randn(size(A)):
生成与矩阵
A
大小相同的服从标准正态分布的随机矩阵
Y=randn(m,n,p,…):
生成
m*n*p*…
的服从标准正态分布的随机数多维数组
3、
矩阵元素的提取与替换
1)
单个元素的提取
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入
b=a(1,2)
2)
提取矩阵中某一行的元素,
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入
b=a(1,:)
1 2 3
3)
提取矩阵中某一列:
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入
b=a(:,1)
4)
提取矩阵中的多行元素
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入
b=a([1,2],:)
1 2 3
3 4 5
5)
提取矩阵中的多列元素
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入
b=a(:,[1,3])
1 3
3 5
6)
提取矩阵中多行多列交叉点上的元素
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入
b=a([1,2],[1,3])
1 3
3 5
7)
单个元素的替换:
如:
a=[1,2,3;3,4,5],
运行后:
1 2 3
3 4 5
输入:
a(2,3)=-1
1 2 3
3 4 -1
4、
矩阵元素的重排和复制排列
1)
矩阵元素的重排
B=reshape(A,m,n):
返回的是一个
m*n
矩阵
B
,矩阵
B
的元素就是矩阵
A
的元素,若矩阵
A
的元素不是
m*n
个则提示错误。
B=reshape(A,m,n,p):
返回的是一个多维的数组
B
,数组
B
中的元素个数和矩阵
A
中的元素个数相等
B=reshape(A,…,[],…):
可以默认其中的一个维数
B=reshape(A,siz) :
由向量
siz
指定数组
B
的维数,要求
siz
的各元素之积等于矩阵
A
的元素个数
2)
矩阵的复制排列
函数是
repmat
B=repmat(A,n):
返回
B
是一个
n*n
块大小的矩阵,每一块矩阵都是
A
B=repmat(A,m,n):
返回值是由
m*n
个块组成的大矩阵,每一个块都是矩阵
A
。
B=repmat(A,[m,n,p,…]):
返回值
B
是一个多维数组形式的块,每一个块都是矩阵
A
5、
矩阵的翻转和旋转
1
)矩阵的左右翻转
左右翻转函数是
fliplr,
调用格式:
B=fliplr(A):
将矩阵
A
左右翻转成矩阵
B
。
输入:
A=[1,2,3;3,4,2]
1 2 3
3 4 2
输入:
B=fliplr(A)
3 2 1
2
4 3
2
)矩阵上下翻转
函数:
flipud
,调用格式:
B=flipud(A):
把矩阵
A
上下翻转成矩阵
B
3)
多维数组翻转
函数:
flipdim
,调用格式:
B=flipdim(A,dim):
把矩阵或多维数组
A
沿指定维数翻转成
B
4)
矩阵的旋转
函数:
rot90
,调用格式:
B=rot90(A):
矩阵
B
是矩阵
A
沿逆时针方向旋转
90
。
得到的
B=rot90(A,k):
矩阵
B
是矩阵
A
沿逆时针方向旋转
k*90
。
得到的
(
要想顺时针旋转,
k
取
-1)
6、
矩阵的生成与提取函数
1)
对角线函数
对角线函数
diag
既可以用来生成矩阵,又可以来提取矩阵的对角线元素,其调用格式:
a)
A=diag(v,k):
当
v
是有
n
个元素的向量,返回矩阵
A
是行列数为
n+|k|
的方阵。向量
v
的元素位于
A
的第
k
条对角线上。
K=0
对应主对角线,
k>0
对应主对角线以上,
k<0
对应主对角线以下。
b)
A=diag(v):
将向量
v
的元素放在方阵
A
的主对角线上,等同于
A=diag(v,k)
中
k=0
的情况。
c)
v=diag(A,k):
提取矩阵
A
的第
k
条对角线上的元素于列向量
v
中。
d)
v=diag(A):
提取矩阵
A
的主对角线元素于
v
中,这种调用等同于
v=diag(A,k)
中
k=0
的情况。
2)
下三角阵的提取
用函数
tril
,调用格式:
a)
L=tril(A):
提取矩阵
A
的下三角部分
b)
L=tril(A,k):
提取矩阵
A
的第
k
条对角线以下部分。
K=0
对应主对角线,
k>0
对应主对角线以上,
k<0
对应主对角线以下。
3)
上三角阵的提取
函数
triu
,调用格式:
a)
U=triu(A):
提取矩阵
A
的上三角部分元素
b)
U=triu(A,k):
提取矩阵
A
的第
k
条对角线以上的元素。
K=0
对应主对角线,
k>0
对应主对角线以上,
k<0
对应主对角线以下