MATLAB训练
实验1
1、 已知矩阵
(1)提取第1行,第2列元素。
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
A(1,2)
ans =
(2)提取第3列元素
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
A(:,3)
ans =
3
5
7
9
(3)提取第一行到第3行中位于第2列和最后一列的元素
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
A(1:3,2:end)
ans =
2 3 4
4 5 6
6 7 8
(4)求A的转置
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
A'
ans =
1 3 5 7
2 4 6 8
3 5 7 9
4 6 8 0
(5)将A进行左右翻转和上下翻转
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
fliplr(A)
ans =
4 3 2 1
6 5 4 3
8 7 6 5
0 9 8 7
flipud(A)
ans =
7 8 9 0
5 6 7 8
3 4 5 6
1 2 3 4
(6)将A顺时针旋转90度
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
rot90(rot90(rot90(A)))
ans =
7 5 3 1
8 6 4 2
9 7 5 3
0 8 6 4
(7)将A变形为2*4*2的矩阵
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
A=reshape(A,2,4,2)
A(:,:,1) =
1 5 2 6
3 7 4 8
A(:,:,2) =
3 7 4 8
5 9 6 0
(8)抽取A的主对角线上方第2条对角线
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
diag(A(1:2,3:4))
ans =
3
6
(9)生成大小和A相等的全0阵,全1阵
zeros(4,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
ones(4,4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
(10)利用A和1个2*2的单位阵生成矩阵
(11)用向量1:0.5:8.5 替换A中的元素,A的大小不变
(12)删除A的第1列和第3列
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];
A(:,[1,3])=[]
A =
2 4
4 6
6 8
8 0
2、生成3阶单位阵;生成主对角线上元素为1,2,3的三阶对角阵。
diag([1 1 1])
ans =
1 0 0
0 1 0
0 0 1
diag([1 2 3])
ans =
1 0 0
0 2 0
0 0 3
3、已知矩阵
(1)求A+B,A-B,5A,A和B的积,A和B的数值积。
A=[5 3 5;3 7 4;7 9 8];
>> B=[2 4 2;6 7 9;8 3 9];
>> A+B
ans =
7 7 7
9 14 13
15 12 17
>> A-B
ans =
3 -1 3
-3 0 -5
-1 6 -1
>> A*B
libmwblas: load error: D:\matlab\bin\win32\atlas_Athlon.dll
Caught "std::exception" Exception message is:
D:\matlab\bin\win32\atlas_Athlon.dll
>> A.*B
ans =
10 12 10
18 49 36
56 27 72
(2)A的平方,A中各元素平方,
(3)以2为底,以A中每个元素为指数得出的矩阵。
A=[5 3 5;3 7 4;7 9 8];
sqrt(A)
ans =
2.2361 1.7321 2.2361
1.7321 2.6458 2.0000
2.6458 3.0000 2.8284
C=[2^5 2^3 2^5;2^3 2^7 2^4;2^7 2^9 2^8]
C =
32 8 32
8 128 16
128 512 256
4、求下列表达式的值
5、a=[-1,0.5,0],b=[-3.4,3,-6],求 a<b, a>=b, a==b, a~=b, a<=0。