DAY4 MATLAB学习笔记—矩阵

矩阵的初级学习
获取元素:
clear all;
A=[3:6;7:10]%两行四列矩阵
f1=A(1,3)% 第1行第3列的元素
f2=A(5) %第5个元素(矩阵是按列存储的,结合上面两条注释,一行三列=第五个)

clear all;
A=[5:8;9:12;13:16;17:20]%四行四列
f1=A(2,:)%第二行的所有数据
f2=A(:,2)%第二列的所有数据
f3=A(1:3,1:3)%一行到三行、一列到最后一列
f4=A(1:end,end) %最后一列
单下标和双下标的转换: ( 矩阵是按照列存储的)
clear all;
A=[5:8;9:12;13:16;17:20]%创建新的四行四列矩阵
ind1=sub2ind(size(A),2,3)%把第二行第三列的元素双下标转换成单下标:从坐标转化成第几个
A(ind1)
A(2,3)
[I,J]=ind2sub(size(A),4)%单下标转化成双下标输出时候I是行,J是列
ind2=sub2ind(size(A),I,J)
查找替换值:
clear all;
A=[1:4;5:8;9:12;13:16]
B=A>8
A(A>8)=9
f1=find(A>2)%找到大于2的元素
A(find(A>2))=0
矩阵的自动扩充:
clear all;
A=[1:4;5:8]
a=A(2,3)
A(4,4)=3%自动扩充成4 * 4矩阵,最后一个是3,其他填充为0
矩阵的合并:
clear all;
A=[1:4;5:8]
B=[1:2;3:4]
C=cat(2,A,B)%水平合并
D=horzcat(A,B)%水平合并
E=vertcat(A,B)%垂直合并,这样就不可以
矩阵的块操作: ( 数据块的复制)
clear all;
A=magic(2)%创建2 * 2的魔方矩阵
B=repmat(A,2,3)%创建一个两行三列的每个元素都是2乘2的矩阵
C=repmat(A,[2,3]) %同上
将多个矩阵作为对角块产生新的矩阵:
clear all;
A=magic(3)
B=[1:2;3:4]%(1、2一行,1、3一列)
C=blkdiag(A,B)%A左上B右下
D=blkdiag(B,A)%B左上A右下
删除矩阵中的某些元素:
clear all;
A=rand(4,4)
A([1 3],:)=[]%第一行和第三行删除
A(:,end)=[]%最后一列进行删除
矩阵的转置: 复数不一样,会转化为共轭复数
clear all;
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.’%有一点不转为为共轭
逆时针旋转90度的K倍,默认为1倍,可以设定参数:
clear all;
A=rand(2,3)
B=rot90(A)%逆时针90度
C=rot90(A,2)%逆时针180度
原来: 180度后:
1 2 3 6 5 4
4 5 6 3 2 1
矩阵的翻转: (左右、上下)
clear all;
A=rand(2,3)
B=fliplr(A)%左右翻转
C=flipud(A)%上下翻转
D=flipdim(A,1)%指定的方向翻转 ,1相当于左右,2相当于上下
E=flipdim(A,2)
矩阵尺寸的改变:
clear all;
X=[1:4;5:8]
Y1=reshape(X,1,8)
Y2=reshape(Y1,[4,2])
Y3=reshape(X,size(Y2))
矩阵的加减:(维数必须相同)
clear all;
A=[1:4;5:8]
B=[2 2 2 2;4 4 4 4]
C=A-B
D=A+12
矩阵的相乘:(直接相乘的矩阵的列数和另一个矩阵的行数相等才行 有点没有点完全不一样)
clear all;
A=[1:4;5:8]
B=[2 2;2 2;2 2;2 2]
C=A * B%直接相乘
D=A.* B’%点乘必须具有相同的行和列
E=A * 10
矩阵的相除:(左右、逆)
clear all;
A=[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%A的逆乘B
D1=B/A
D2=B * inv(A)
E1=A^3
E2=A * A * A
矩阵的点除:(左右、对应元素相除)
clear all;
A=[1 1 1;1 1 1;1 1 1]
B=[1 1 1;2 2 2;3 3 3]
C1=A./B%A是分子
C2=A.\B%B是分子
C3=A./2
D=A.^2
矩阵的中阶段学习
矩阵元素的查找:
clear all;
A=[4 0 5;0 6 8;9 9 9]
B=find(A)%返回非0元素的位置
C=find(A>=5)%返回大于等于5的位置
D=A(find(A>=5))%返回大于等于5的位置的值
A(find(A==9))=666%替换等于9的位置的值为666
矩阵元素的排序:
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’)%按照行降序
矩阵元素的求和:
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))%总和
矩阵元素的求积:
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)
矩阵元素的差分:(相减)
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阶差分
全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))
标准正态分布矩阵:( 均值为0方差为1)
clear all;
A=randn(4)
B=randn([2,5])
C=randn(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§ %求伴随矩阵
x1=eig(A) %求特征值 就是根 有3个根
x2=roots§ %另一种方法
矩阵的高级学习:
逆矩阵和广义逆矩阵:
clear all;
A=magic(4)
B=[2 4;6 4]
C=inv(A)
inv(B)
D=pinv(B)
BDB%某矩阵乘以广义逆矩阵再乘以本身还等于他本身
求矩阵的秩:(和线性相关有关系、反映的是否是线性相关、满秩则线性无关)
claer all;
A=magic(4)
B=[5 4 3;1 2 3;7 7 7]
r1=rank(A)
r2=rank(B)
矩阵的迹:(对角线元素之和、特征值之和)
clear all;
A=magic(4)
t1=trace(A)
eig(A)%求特征值
t2=sum(eig(A))
矩阵的范数: 默认求2范数,也可以求 1 范数、无穷范数。需要掌握范数的基本数学知识。
clear all;
A=[1 1 1;3 3 3;2 7 7]
n1=norm(A,1)%求1范数
n2=norm(A)%求2范数
n3=norm(A,inf)%求无穷范数
求矩阵的平方根:
clear all;
A=[4 4 4 ;6 6 6;6 7 8]
X=sqrtm(A)
B=X*X%矩阵的平方根的平方等于本身
求矩阵的指数和自然对数:
X1=expm(A)
Y1=logm(X1)
稀疏矩阵:
clear all;
A=rand(4,3)>0.4%产生一个4行3列的矩阵并且使大于0.4的赋值为1
S=sparse(A)%创建稀疏矩阵,用坐标的方式表示数值为1的元素
whos%稀疏矩阵字节占用更多

clear all;
A=[0 0 0 66;0 0 55 0;0 0 0 0;44 0 0 0]
S=spare(A)
n1=nnz(S)%计算稀疏矩阵非零值的个数
spy(S)%对非零元素的分布进行图形化显示
单位稀疏矩阵:
claer all;
A=speye(4)%单位稀疏矩阵,对角线上元素是1
C=full(A)%重现完整矩阵

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值