学习目标:
矩阵的初级学习
首先我们来说明如何获取元素。
A = [3:6;7:10]
f1 = A(1,3)
f2 = A(5)
B = [5:8;9:12;13:16;17:20]
f3 = B(2,:)
f4 = B(:,2)
f5 = B(1:3,1:3)
f6 = B(1:end,end)
首先创建矩阵A,B
然后f1是获取第1行第3列的元素
f2是获取第5位的元素
f3是获取第2行的所有元素
f4是获取第2列的所有元素
f5是获取第1~3行的第1~3列元素
f6是最后一列的元素
接下来是单下标和双下标的转换,矩阵是按照列存储的
A = [5:8;9:12;13:16;17:20]
indl = sub2ind(size(A),2,3)
A(indl)
A(2,3)
[I,J] = ind2sub(size(A),4)
B = A>8
A(A>8) = 9
f1 = find(A>2)
A(find(A>2)) = 0
接下来是矩阵的自动扩充
A = [1:4;5:8]
a = A(2,3)
A(4,4) = 3
B = [1:2;3:4]
C = cat(2,A,B)
D = horzcat(A,B)
E = vertcat(A,B)
语法cat是合并的意思,语法horzacat是平行合并,语法vertcat是垂直合并。
接下来是矩阵的块操作,数据块的复制。
A = magic(2)
B = repmat(A,2,3)
C = repmat(A,[2,3])
首先是建立magic魔方矩阵。
然后是使用语法repmat,B和C是一个意思。
下面的是将多个矩阵作为对角块产生新的矩阵
A = magic(3)
B = [1:2;3:4]
C = blkdiag(A,B)
D = blkdiag(B,A)
显然语法blkdiag的意思是对角产生矩阵。
下面是删除矩阵中的某些元素
A = rand(4,4)
A([1 3],:) = []
A(:,end) = []
首先创建一个随机矩阵
第二行是把第1和3行的值变为0
第三行是把最后一列的值变成0 。
下面是矩阵的转置,复数不一样,会转化为共轭复数。
A = rand(2,4)
A1 = A'
A2 = transpose(A)
B = [2+3i,4+5i,3;2 4+i 5+3*i]
B1 = B'
B2 = ctranspose(B)
B3 = B.'
接下来是矩阵尺寸的改变,和加减乘除。
X = [1:4;5:8]
Y1 = reshape(X,1,8)
Y2 = reshape(Y1,[4,2])
Y3 = reshape(X,size(Y2))
A = [1:4;5:8]
B = [2 2 2 2; 4 4 4 4]
C = A - B
D = A + 12
E = A * B
F = A.*B'
G = A * 10
A1 = [1 1 1;1 1 1;1 1 1]
B = [1 1 1;2 2 2;3 3 3]
C1 = A\B
C2 = inv(A)*B
D1 = B/A
D2 = B*inv(A)
E1 = A^3
E2 = A*A*A