MatLab(二)

一、rand()随机生成矩阵

rand(2):生成一个两行两列的矩阵,元素在0-1之间

rand(2)

ans =

0.9058  0.9134
0.1270  0.6324

rand(2,3)生成一个两行三列多的矩阵

rand(2,3)

ans =

0.9133 0.8258 0.9961
0.1524 0.5383 0.0782

randi([1,10]):生成1-10之间的随机数

randi([1,10])

ans =

5

randi([1,10],3,4):生成一个三行四列的矩阵,矩阵元素的取值在1-10之间

randi([1,10],3,4)

ans =

2 8 1 9
10 9 4 5
1 9 3 1

二、零矩阵

zeros(5):生成五行五列的零矩阵

zeros(5)

ans =

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

zeros(3,5):生成三行五列的零矩阵

zeros(3,5)

ans =

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

三、元素全为1的矩阵 

ones(3):生成三行三列元素全是1 的矩阵

ones(3)

ans =

1 1 1
1 1 1
1 1 1

ones(3,5):生成三行五列元素全是1的矩阵

ones(3,5)

ans =

1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

四、单位矩阵

eye(4)

ans =

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

五、生成对角矩阵

diag(v):以V矩阵的元素为该矩阵的对角线元素,其余元素全为0(注:矩阵V是行向量或者列向量)

diag(v)

ans =

3 0 0 0 0 0 0
0 4 0 0 0 0 0
0 0 5 0 0 0 0
0 0 0 6 0 0 0
0 0 0 0 7 0 0
0 0 0 0 0 8 0
0 0 0 0 0 0 9

diag(起始元素:间隔:终止元素,次对角线)

diag(-1:-1:-6,-1):次对角线元素从-1到-6,间隔为-1的矩阵

ans =

0 0 0 0 0 0 0
-1 0 0 0 0 0 0
0 -2 0 0 0 0 0
0 0 -3 0 0 0 0
0 0 0 -4 0 0 0
0 0 0 0 -5 0 0
0 0 0 0 0 -6 0

diag(-1:-1:-6,-1)+diag(v)

ans =

3 0 0 0 0 0 0
-1 4 0 0 0 0 0
0 -2 5 0 0 0 0
0 0 -3 6 0 0 0
0 0 0 -4 7 0 0
0 0 0 0 -5 8 0
0 0 0 0 0 -6 9

六、取出矩阵中的元素

M=[9,6,3;5,7,2]

M =

9 6 3
5 7 2

M(2,3):取出矩阵中第二行第三列的元素

ans =

2

M(2,[1,3]):取出矩阵中第二行中,第一个与第三个元素

ans =

5 2

M(1,1:3):取出元素中第一行,第一个到第三个之间的元素

ans =

9 6 3

M(1,:):取出第一行的所有元素

ans =

9 6 3

M(:,2):取出第二列的所有元素

ans =

6
7

M(end,:):取出最后一行的所有元素

ans =

5 7 2

M(:,end):取出最后一列的所有元素

ans =

3

M(end-1,:):取出倒数第二行的所有元素

ans =

9 6 3

矩阵中的线性下标:M(2):表示矩阵中的第二个元素;是根据先完成第一列元素的所有标号,再完成第二列元素的所有标号

M(2)

ans =

5

>> M([6 3 5 4])

ans =

2 6 3 7

M([6,3,5,4])

ans =

2 6 3 7

注:上面的有逗号与无逗号的书写没结果是一致的;

七、修改矩阵中元素的值

M(2,3)=NaN:将矩阵中的第二行第三列的元素改为NaN

M =

9 6 3
5 7 NaN

M(1,:)=[1,2,3]:第一行的元素改为1,2,3

M =

1 2 3
5 7 NaN

M(1:2,1:2):M的子阵

ans =

4 5
5 7

M(1:2,1:2)=[7,8;,9,10] :修改M的前两行两列

M =

7 8 6
9 10 NaN

在对矩阵赋值时,要注意左右矩阵的行列要一致,除去以下的情况;

M(1,:)=0.5

M =

0.5000 0.5000 0.5000
9.0000 10.0000 NaN

八、length(M)返回矩阵中行数和列数最大的那一个

length(M)%返回行数和列数值较大的那一个

ans =

3

size(M):返回矩阵的行数和列数

size(M)

ans =

2 3

>> vector_size=size(M)

vector_size =

2 3

>> [n_row,n_col]=size(M)

n_row =

2


n_col =

3

numel(M):返回矩阵中的元素个数

numel(M)

ans =

6

补充:

创建行向量

v=[1,2,3,4,5]

v =

1 2 3 4 5

v=1:3:10 从1开始,间隔为3,最大不超过10的等差数列

v =

1 4 7 10

linspace(1,10,9) 生成从1到10的等比数列,元素个数为9个

ans =

1.0000 2.1250 3.2500 4.3750 5.5000 6.6250 7.7500 8.8750 10.0000

logspace(1,10,9) 生成从10^1到10^10的等比数列,元素个数为9

ans =

1.0e+10 *

0.0000 0.0000 0.0000 0.0000 0.0000 0.0004 0.0056 0.0750 1.0000

行向量组合在一起:

v1=1:2:6

v1 =

1 3 5

>> v2=[3,5,6]

v2 =

3 5 6

>> [v1,v2]

ans =

1 3 5 3 5 6

创建列向量

c1=[1;2;3;4]

c1 =

1
2
3
4

向量的共轭转置

>> r1=c1'

r1 =

1 2 3 4

向量的转置

>> r1=c1.'

r1 =

1 2 3 4

在实数范围内,向量的转置与共轭转置是一样的;

posted @ 2022-04-06 17:17  无敌小金刚  阅读(703)  评论(0)    收藏  举报