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
在实数范围内,向量的转置与共轭转置是一样的;

浙公网安备 33010602011771号