4.7 矩阵运算函数先介绍几个与矩阵转角有关的函数:rot90, fliplr, flipud,它们的用法及说明请参考以下的例子。 >> A=[2 1 0; -2 5 -1; 3 4 6]; >> B=rot90(A) % 将A矩阵逆时针转90度 B = 0 -1 6 1 5 4 2 -2 3 >> A=[1 2; 4 8; -2 0]; >> B=fliplr(A); % 将A矩阵从左向右翻 >> C=flipud(A); % 将A矩阵从上向下翻 >> B, C B = 2 1 8 4 0 -2 C = -2 0 4 8 1 2 另外函数 reshape 则是用来调整矩阵改形,即是在矩阵的元素总数不变下,改变其列及行的大小。见以下范例。 >> A=[2 5 6 -1; 3 -2 10 0]; >> B=reshape(A,4,2); % 将A矩阵改成 4x2 的矩阵 >> C=reshape(A,1,8); % 将A矩阵改成 8x1 的矩阵 >> B, C B = 2 6 3 10 5 -1 -2 0 2 5 6 1 3 -2 10 0 我们如果要将矩阵内的特定元素读取出来,或是将特定元素以其它值取代,以下的函数diag, triu, tril 提供了这方面的功能。diag是只保留原矩阵的主对角线 (main diagonal) 的元素,其余的元素以零取代。triu, tril 则是分别产生上三角形及下三角形矩阵,其余的元素也以零取代。以下的例子详细的说明这三个函数的用法: >> V=[1 2 3]; >> A=diag(V) A = 1 0 0 0 2 0 0 0 3 >> A=[1:2:7; 3:3:12; 4:-1:1; 1:4] A = 1 3 5 7 3 6 9 12 4 3 2 1 1 2 3 4 >> B=triu(A) B = 1 3 5 7 0 6 9 12 0 0 2 1 0 0 0 4 >> C=triu(A,-1) C = 1 3 5 7 3 6 9 12 0 3 2 1 0 0 3 4 >> D=triu(A,3) D = 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 >> B=tril(A) B = 1 0 0 0 3 6 0 0 4 3 2 0 1 2 3 4 >> C=triu(A,-1) C = 0 0 0 0 3 0 0 0 4 3 0 0 1 2 3 0 >> D=triu(A,3) D = 1 3 5 7 3 6 9 12 4 3 2 1 1 2 3 4 |
|