3.数组和向量

3.数组和向量

介绍

在Matlab中,向量和矩阵主要由数组表示。

数组

数组是Matlab的核心结构。

任何变量在Matlab中都是以数组的形式存储和运算的。

分类

空数组、一行一列的标量、一行一列的向量、二维数组、多维数组

A=[1,2,3;4,5,6]
size(A)% 2     3
[rows,cols]=size(A)%rows=2;cols=3
length(A)%返回数组的最大维值-->3

普通数组、稀疏数组(稀疏矩阵)–>大部分元素为0,目的是提高数据的存储和运算效率。

创建数组
A=[1,2,3;4,5,6]
zeros(2,3)%2行3列的0矩阵
ones(2,3)%2行3列的1矩阵
rand(1,3)%0~1之间-->0.8147    0.9058    0.1270
diag(A)%[1;5]
diag(diag(A))%[1,0;0,5]
magic(2)%1到2方的2*2数组

B=[1;1]
rand(size(B))%和B行列相同的数组
[A B]%拼接
数组操作
获取、更改、写入
A=[1,2,3;4,5,6]
A(1,2)%获取-->2
A(1,2)=0%更改一行2列为0
A(3,1)=1%写入,自动扩充-->[1,0,3;4,5,6;1,0,0]
算术
A=[1,2;5,6]
A+1%[2,3;6,7]
B=[1;2]
B*2%[2;4]
A*B%矩阵乘法
A.*B%对应元素相乘
A./B%对应元素相除
逻辑运算
%比较大小
A=[5,1]
B=[1,2]
A>B%比较-->1 0
库函数sum、mean
%sum、mean
C=[1,2,3;4,5,6]
sum(C)%列求和5     7     9
mean(C)%列平均2.5000    3.5000    4.5000
min(C)
max(C)%列最大-->4     5     6
[value col]=max(C)%=[value,col]=max(C),value=[4,5,6],col=[2,2,2]
连接
A=[1 2]%=A=[1,2]
A=[1;2]
切片

在这里插入图片描述

A=[1 2;3 4]
A(:,1)%取出第一列,所有行
数组重排
A=1:6
reshape(A,3,2)%将A重构成一个3*2矩阵[1 4;2 5;3 6]
A=1:10
reshape([A,0,0],4,3)%重构成3*4的矩阵,最后补俩0
线性化数组

在这里插入图片描述

不要把线性化作为程序的一部分,它会使程序理解起来很困难,更正:

在这里插入图片描述

向量

不同于普通数学意义上的带有方向的量,Matlab中向量指的是对相似数据项的集合进行分组的最简单方式。

在这里插入图片描述

向量具备两个独立且截然不同的属性:数值及其在向量中的位置。

向量是一维的

创建向量
A=[1,2,3]
A=[1 2 3]
B=[1:2:4]%起始值:步长(可省略):终止值-->1     3
C=linspace(1,10,3)%起始,终止,个数-->1.0000    5.5000   10.0000
D=[3]%不是标量,这代表具有单位长度的向量
E=[1:1:99]%工作区value栏显示1*99double
zeros(1,3)%0     0     0
ones(1,3)%1     1     1
rand(1,3)%均匀随机数0.7060    0.0318    0.2769
randn(1,3)%正态分布随机数-0.8095   -2.9443    1.4384
向量尺寸
A=[1,2,3]
size(A)%1     3
length(A)%行数和列数的最大值3
向量索引
数值索引
A=[1,2,3]
A(2)%2
A(2)=3%1     3     3
A(5)=1%扩展1     3     3     0     1
逻辑索引
mask=[true,false,true,true]%1   0   1   1
A=[1 2 3 4]
A(mask)%1     3     4
缩短向量
A=[1 2 3 4]
A(2)=[]%移除第二个,1     3     4
向量操作
算术操作
A=[1 2 3 4]
A+5%6     7     8     9
%其他的+ - .* ./同理,不再列举
逻辑操作
%判断
A=[1 2 3 4]
B=[1 3 7 2]
A>3%0   0   0   1
A>B%0   0   0   1

%单操作符与&或|
A=[true false true]
B=[false false true]
A&B%0   0   1
A|B%1   0   1

%双操作符与&&或||
2&&0%0
2||0%1

find()函数得到对应逻辑向量中元素为真的向量元素的索引值。

A=[1 2 3 5]
find(A>=3)%3     4
B=~[true false false]%取非0   1   1

在这里插入图片描述

库函数
%sum() mean() 
%min() max()
[value where]=max([1 2 5 1])%value =5;where =3

在这里插入图片描述

连接
A=[1 3]
B=[2 3 1]
[A B]%1     3     2     3     1
切片
A=[1 2 3 4]
A([true false true false])%1     3
A(2:2:4)%起始:步长:终止-->2     4

在这里插入图片描述

连接
A=[1 3]
B=[2 3 1]
[A B]%1     3     2     3     1
切片
A=[1 2 3 4]
A([true false true false])%1     3
A(2:2:4)%起始:步长:终止-->2     4

参考文献
王贵财《MATLAB从入门到精通》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值