经过了初级函数的学习,我们对矩阵有了初步的了解,下面对矩阵中级函数尽兴学习。
矩阵元素的查找。find函数
clear all;
A=[4 0 5;0 6 8;9 9 9]
B=find(A) %返回非0元素的位置
C=find(A>=5) %返回位置
D=A(find(A>=5)) %返回元素值
A(find(A==9))=1 %将A中等于9的元素值全部变为1
矩阵元素的排序。sort函数
clear all;
A=[3 0 4;0 2 1;5 4 7]
B=sort(A) % 每一列从小到大排序
C=sort(A,2) % 按照行排序
D=sort(A,'descend') % 按照列降序
E=sort(A,2,'descend') % 按照行降序
矩阵元素的求和。sum函数和cumsum函数
clear all;
A=[2 2 1 1;3 3 3 3;1 1 1 1]
B1=sum(A) %每一列的和
B2=sum(A,2) %每一行的和
C1=cumsum(A) %返回值为矩阵 列相加 新矩阵为该矩阵及以上行数所加之和
C2=cumsum(A,2) %返回值为矩阵 行相加 新矩阵为该矩阵及以上列数所加之和
D=sum(sum(A)) %矩阵所有行列相加总和
矩阵元素的求积。prod和cumprod函数,用法和求和用法一样,就不详细阐述
clear all;
A=[4 4 4 0;5 5 5 5;6 6 6 6]
B1=prod(A)
B2=prod(A,2)
C1=cumprod(A)
C2=cumprod(A,2)
矩阵元素的差分。diff函数,表示下一行/列与上一行/列的差值为多少,没进行一阶差分减少一行/列,
clear all;
A=[1 1 1 0;2 2 2 2;1 2 3 4]
B1=diff(A)
B2=diff(A,2) %每一列求2阶差分
B3=diff(A,1,1) %列上进行1阶差分
B4=diff(A,1,2) %行上进行1阶差分
矩阵的创建。仅对常用矩阵函数进行罗列
A = zeros(3) %创建全0矩阵
B = ones(3) %创建全1矩阵
C = eye(3) %创建单位矩阵
D = rand(3) %创建随机矩阵,随机范围为0~1
E = randn(4) %创建标准正态分布矩阵,均值为0方差为1
F = magic(3) %创建魔方矩阵,每行每列以及对角线相加数相等
求矩阵的行列式。det函数
clear all;
A=magic(5)
B=[2:4;5 5 5;3 3 3]
y1=det(A)
y2=det(B)
求矩阵的特征值。
clear all;
A=magic(3)
E=eig(A) %求矩阵的全部特征值,是一个向量
[V,D]=eig(A) %返回两个方阵,V的每一列是一个特征向量,D的对角线上的元素是特征值
求方程的根。
clear all;
p=[4 4 4 1] %向量P是方程的系数,从高到低排 4x^3+4x^2+4x+1
A=compan(p) %求伴随矩阵
x1=eig(A) %求特征值 就是根 有3个根
x2=roots(p) %另一种方法