%% 矩阵元素的查找
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≥5的元素按矩阵索引顺序排列成一个列矩阵,然后把矩阵赋给D
A(find(A==9))=666 %把数值为9的元素赋值为666
D =
9
6
9
5
8
9
%% 矩阵元素的排序
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') % 每一行降序排列
A =
3 0 4
0 2 1
5 4 7
B =
0 0 1
3 2 4
5 4 7
C =
0 3 4
0 1 2
4 5 7
D =
5 4 7
3 2 4
0 0 1
E =
4 3 0
2 1 0
7 5 4
%% 矩阵元素的求和
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) %返回值为矩阵 但是把A的最后一行中的每个数替换为对应的列和
C2=cumsum(A,2) %返回值为矩阵 但是把A的最后一列中的每个数替换为对应的行和
D=sum(sum(A)) % 总和
A =
2 2 1 1
3 3 3 3
1 1 1 1
B1 =
6 6 5 5
B2 =
6
12
4
C1 =
2 2 1 1
5 5 4 4
6 6 5 5
C2 =
2 4 5 6
3 6 9 12
1 2 3 4
D =
22
%% 矩阵元素的求积
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)
%基本和上一个图一样的规律 但是注意C1和C2的第二行、第二列
A =
4 4 4 0
5 5 5 5
6 6 6 6
B1 =
120 120 120 0
B2 =
0
625
1296
C1 =
4 4 4 0
20 20 20 0
120 120 120 0
C2 =
4 16 64 0
5 25 125 625
6 36 216 1296
%% 矩阵元素的差分
clear all;
A=[1 1 1 0;2 2 2 2;1 2 3 4]
B1=diff(A)
B2=diff(A,2) %每一列求2阶差分 即在B1基础上进行重复
B3=diff(A,1,1) %列上进行1阶差分 即第一个数字为阶数 第二个数字 1代表列2代表行
B4=diff(A,1,2) %行上进行1阶差分
A =
1 1 1 0
2 2 2 2
1 2 3 4
B1 =
1 1 1 2
-1 0 1 2
B2 =
-2 -1 0 0
B3 =
1 1 1 2
-1 0 1 2
B4 =
0 0 -1
0 0 0
1 1 1
%% 全0矩阵
clear all;
A=zeros(3)
B=zeros(2,4)
C=zeros(size(B))
%% 全1矩阵
clear all;
A=ones(4)
B=ones([4,2])
C=ones(size(A))
%% 对角线是1的矩阵
clear all;
A=eye(4)
B=eye([4,5])
C=eye(size(B))
%% 随机矩阵 0到1
clear all;
A=rand(4)
B=rand([2,5])
C=rand(size(B))
%% 每一行,每一列,对角线的和都相等
clear all;
A=magic(5)
%% 求方阵的行列式
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) %另一种方法