2.2 矩阵的基本操作

%例32 简单矩阵构造
A=[2,3,5;3,6,10]
B=[2 3 5;3 6 10]
V1=[8,59,60,33]
v2=[5;8;3;4;9]

%例33 特殊矩阵构造
A=ones(2)
B=zeros(2)
C=eye(2)
D=eye(2,3)
E=eye(3,2)
Random=rand(2,3)
Array=Random(:,2)%第二列的所有行
Diaglement=diag(Random)%取主对角线的元素形成一个列向量
Diagmatrix=diag(diag(Random))%以列向量作为主对角线元素形成一个方阵
Dmatrix_array=diag(Array)%以列向量作为主对角线元素形成一个方阵
UpperTriangular=triu(Random)%形成上三角矩阵
LowerTriangular=tril(Random)%形成下三角矩阵

%例34 向量、标量、空矩阵
clear
clc
a=[1 2 3 4 5 6]
b=[1;2;3;4;5;6]
whos
x=10+i
y=[10+i]%单个数据构造的矩阵也是标量
x==y%标量的两种表示方法

%例34 矩阵的旋转与维度的改变
a=randn(1,4) %满足正态分布的随机数,rand使满足0,1之间的均匀分布随机数
b=randn(2)%随机生成2*2矩阵,默认为方阵
a=reshape(a,2,2)%列优先排
a=fliplr(a)
a=rot90(a)%逆时针
c=cat(2,a,b)%2的意思是横着组合
d=cat(1,a,b)%1的意思是竖着组合

%例35 矩阵下标的引用
matrix=magic(6)%生成一个每行或者每列的元素之和都为6的矩阵
Submatix=matrix(2:3,3:6)%取2到3行,3到6列构成新矩阵
Array=matrix([7:10 26:31])%取矩阵的这些元素形成一个行向量
Brray=matrix(:,1)%第一列

%例36 矩阵元素单双索引转换
matrix=magic(3)
IND=sub2ind(size(matrix),2,3) %双引转为单引
[I J]=ind2sub(size(matrix),7) %单引转为双引

%例37 矩阵结构测试函数的使用
A=zeros(4,4)
isempty(A)
isscalar(A)
isvector(A)
issparse(A)%判断是否是稀疏矩阵(元素大多数都是零的矩阵)

%例38 矩阵形状信息获取函数的使用示例
A=eye(5,3)
ndims(A)%获取矩阵在几维空间
length(A)%获取矩阵最长的维度大小(x,y,z......)
[m,n]=size(A)

%例39 数值与矩阵的算数运算示例
A=[];B=1:4;C=[1:4;5:8];
S1=size(A),S2=size(B),S3=length(B),s4=size(C),S5=length(C),S6=numel(C)%查询矩阵元素个数

%例40 计算矩阵维度
E(:,:,2)=[1 2;3 4]%定义双层蛋糕的第二层为矩阵[1 2;3 4],第一层未定义默认为0
ndims(E)
A=[]
Ndims=[ndims(A),ndims(E)]%注意空矩阵是2维的

%例41 矩阵元素的数据类型判断
A=[2 3;10 7]
isnumeric(A)%数字
isfloat(A)%双浮点数
islogical(A)%逻辑数

%例42 数据类型判断示例
Mat=magic(2)
tureorfalse=[isnumeric(Mat) isinteger(Mat)]%matlab默认双浮点数,不是整数

%例44 查看矩阵的占用内存示例
clear
a=rand(2)
whos a%不加小括号

%例45 单个矩阵元素的寻址
A=rand(4,3)
x=A(2,2)
y=A(4,3)

%例46 randn函数的使用,并访问元素
X=randn(10,8)
A=X(2,:)
B=X(3:8,2:6)

%例47 线性寻址希尔伯特矩阵(任何元素发生一点变化,矩阵的逆和行列式都会发生很大变化)
A=hilb(3)
A(2,3)
A(8)

%例48 矩阵元素的赋值
M=magic(4)
M(2,1)=-2
M(3:4,3:4)=0
M=[]
whos M
ndims M

%例49 矩阵元素的扩展
A=[1 1;2 2]
A(3,:)=3
A(4,1)=4;A(4,2)=5
A(2,:)=[]

%例50 矩阵合并函数示例
A=[2 0 -1;1 3 2]
B=[1 2 -1;4 2 3; 2 0 1]
d=cat(1,A,B)%1是竖着合并
e=cat(2,A,B)%2是横着合并,维护不一致报错

%例32 简单矩阵构造
A=[2,3,5;3,6,10]
B=[2 3 5;3 6 10]
V1=[8,59,60,33]
v2=[5;8;3;4;9]

%例33 特殊矩阵构造
A=ones(2)
B=zeros(2)
C=eye(2)
D=eye(2,3)
E=eye(3,2)
Random=rand(2,3)
Array=Random(:,2)%第二列的所有行
Diaglement=diag(Random)%取主对角线的元素形成一个列向量
Diagmatrix=diag(diag(Random))%以列向量作为主对角线元素形成一个方阵
Dmatrix_array=diag(Array)%以列向量作为主对角线元素形成一个方阵
UpperTriangular=triu(Random)%形成上三角矩阵
LowerTriangular=tril(Random)%形成下三角矩阵

%例34 向量、标量、空矩阵
clear
clc
a=[1 2 3 4 5 6]
b=[1;2;3;4;5;6]
whos
x=10+i
y=[10+i]%单个数据构造的矩阵也是标量
x==y%标量的两种表示方法

%例34 矩阵的旋转与维度的改变
a=randn(1,4) %满足正态分布的随机数,rand使满足0,1之间的均匀分布随机数
b=randn(2)%随机生成2*2矩阵,默认为方阵
a=reshape(a,2,2)%列优先排
a=fliplr(a)
a=rot90(a)%逆时针
c=cat(2,a,b)%2的意思是横着组合
d=cat(1,a,b)%1的意思是竖着组合

%例35 矩阵下标的引用
matrix=magic(6)%生成一个每行或者每列的元素之和都为6的矩阵
Submatix=matrix(2:3,3:6)%取2到3行,3到6列构成新矩阵
Array=matrix([7:10 26:31])%取矩阵的这些元素形成一个行向量
Brray=matrix(:,1)%第一列

%例36 矩阵元素单双索引转换
matrix=magic(3)
IND=sub2ind(size(matrix),2,3) %双引转为单引
[I J]=ind2sub(size(matrix),7) %单引转为双引

%例37 矩阵结构测试函数的使用
A=zeros(4,4)
isempty(A)
isscalar(A)
isvector(A)
issparse(A)%判断是否是稀疏矩阵(元素大多数都是零的矩阵)

%例38 矩阵形状信息获取函数的使用示例
A=eye(5,3)
ndims(A)%获取矩阵在几维空间
length(A)%获取矩阵最长的维度大小(x,y,z......)
[m,n]=size(A)

%例39 数值与矩阵的算数运算示例
A=[];B=1:4;C=[1:4;5:8];
S1=size(A),S2=size(B),S3=length(B),s4=size(C),S5=length(C),S6=numel(C)%查询矩阵元素个数

%例40 计算矩阵维度
E(:,:,2)=[1 2;3 4]%定义双层蛋糕的第二层为矩阵[1 2;3 4],第一层未定义默认为0
ndims(E)
A=[]
Ndims=[ndims(A),ndims(E)]%注意空矩阵是2维的

%例41 矩阵元素的数据类型判断
A=[2 3;10 7]
isnumeric(A)%数字
isfloat(A)%双浮点数
islogical(A)%逻辑数

%例42 数据类型判断示例
Mat=magic(2)
tureorfalse=[isnumeric(Mat) isinteger(Mat)]%matlab默认双浮点数,不是整数

%例44 查看矩阵的占用内存示例
clear
a=rand(2)
whos a%不加小括号

%例45 单个矩阵元素的寻址
A=rand(4,3)
x=A(2,2)
y=A(4,3)

%例46 randn函数的使用,并访问元素
X=randn(10,8)
A=X(2,:)
B=X(3:8,2:6)

%例47 线性寻址希尔伯特矩阵(任何元素发生一点变化,矩阵的逆和行列式都会发生很大变化)
A=hilb(3)
A(2,3)
A(8)

%例48 矩阵元素的赋值
M=magic(4)
M(2,1)=-2
M(3:4,3:4)=0
M=[]
whos M
ndims M

%例49 矩阵元素的扩展
A=[1 1;2 2]
A(3,:)=3
A(4,1)=4;A(4,2)=5
A(2,:)=[]

%例50 矩阵合并函数示例
A=[2 0 -1;1 3 2]
B=[1 2 -1;4 2 3; 2 0 1]
d=cat(1,A,B)%1是竖着合并
e=cat(2,A,B)%2是横着合并,维护不一致报错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值