【数学建模】matlab向量(数组)

《精通MATLAB》

向量(数组)

创建一维行向量,只需要把所有用空格成逗号分隔的元素用方括号括起来即可;
而创建一维列向量,则需要在方括号括起来的元素之间用分号分隔。不过,更常用的办法是用转置运算符',把行向量转置为列向量。

对于3行2列的数组A,A(3,1)表示数组A的第3行第1列的元素,A(1,2)表示数组A的第1行第2列的元素。

在这里插入图片描述

x=[1,2,3,4,5] %以行向量(数组)方式给x赋值
t=[1;2;3;4;5] %以列向量(数组)方式给t赋值
y=(x(3)+x(5))/2*x(4)   %x(3)调用x中的第3个元素
Z=sqrt(x)    %每个元素开方
u=x*t   %向量的内积(u为向量x的模的平方)
x(6)=16   %加入第6个元素
x(2)=[]    %删除第2个元素

向量运算函数
在这里插入图片描述

使用冒号创建等差数列

Var=start_val:step:stop_val

表示创建一个一维行向量Var,它的第一个元素是start_val,然后依次递增(step为正)或递减(step为负)step,直到向量中的最后一个元素与stop_val差的绝对值小于等于step的绝对值为止。当不指定step时,默认step等于1。

2.通过linspacei函数创建
和冒号功能类似的是MATLAB:提供的linspacel函数:

Var=linspace (start_val,stop_val,n)

表示创建一个一维行向量Var,它的第一个元素是start_val,最后一个元素是
stop_val,形成总共是n个元素的等差数列。不指定n时,默认n等于100。要注意,这和冒号是不同的,冒号创建等差的一维数组时,stop_v可能取不到。

3.通过logspace函数创建
类似于linspacel函数,MATLAB中还有创建等比一维数组的logspacel函数:

Var=logspace(start_val,stop_val,n)

表示产生从10^start valz到10^stop val包含n个元素的等比一维数组Var。不指定n时,默认n等于50。

>>A=1ogspace(0,1og10(32),6);
A=1.00002.00004.00008.000016.000032.0000

在这里插入图片描述
(1)d=size(A)
将数组A的行列尺寸以一个行向量的形式返回给变量d,即d=[m n];
(2)[a,b]=size(A)
将数组A在行、列的方向的尺寸返回给a,b,即a=m,b=n。
length函数常用于返回一维数组的长度。
①当A是一维数组时,length(A)返回此一维数组的元素个数;
②当A是普通二维数组时,length(A)返回size(A)得到的两个数中较大的那个。

MATLAB中还有返回数组元素总个数的函数numel,对于m行n列的数组A,
numel(A)实际上返回m*n。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
随机数组
在各种分析领域,随机数组都是很有用途的。MATLAB中可以通过内部函数产生服从多种随机分布的随机数组,常用的有均匀分布和正态分布的随机数组。
(1)rand(m,n)可以产生m行n列的随机数组,其元素服从0到1的均匀分布。
(2)rand(size(A))产生和数组A具有相同大小的、元素服从0到1均匀分布的随机数组。
(3)rand(m)则产生m行m列的元素服从0到1均匀分布的随机数组。randn函数用于产生元素服从标准正态分布的随机数组,其用法和rand类似,此处不再赘述。

魔方数组
魔方数组也是一种比较常用的特殊数组,这种数组一定是正方形的(即行的方向的元素个数和列的方向的相等),而且每一行、每一列的元素之和都相等。MATLAB可以通过magic(n)创建n行n列的魔方数组。

在这里插入图片描述
repmat函数会经常用到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除数组元素很简单,只需要对该位置元素赋值为空方括号([])即可,一般配合冒号,将数组的某些行、列元素删除。但要注意,进行删除时,索引结果必须是完整的行或完整的列,而不能是数组内部的块或单元格。
在这里插入图片描述

数组转置

在这里插入图片描述
在这里插入图片描述

数组翻转

在这里插入图片描述

数组运算
最基本的就是数组和数组的 加(+)、减(-)、乘(*)、乘方(^) 等运算。要注意,数组的加、减,要求参与运算的两个数组具有相同的尺寸,而数组的乘法要求第一个数组的列数等于第二个数组的行数,乘方运算在指数n为自然数时相当于n次自乘,这要求数组具有相同的行数和列数。

数组除法实际上是乘法的逆运算,相当于参与运算的一个数组和另一个数组的逆(或伪逆)数组相乘。
MATLAB中数组除法有左除(/)和右除()两种。

(1)A/B相当于A*inv(B)A*pinv(B)(2)A\B相当于inv(A)*Bpinv(A)*B. 

其中,inv是数组求逆函数,仅适用于行列数相同的方形数组(在线性代数中,称为方阵);piv是求数组广义逆的函数。

点运算
A.*B,就可以实现两个同样尺寸的数组A和数组B对应元素的乘法,同样的,A./B或A.\B实现元素对元素的除法,A.^n实现对逐个元素的乘方。
在这里插入图片描述

数组查找
MATLAB中数组查找只有一个函数find,它能够查找数组中的非零元素并返回其下标索引。find配合各种关系运算和逻辑运算,能够实现很多查找功能。
find函数有两种语法形式:

(1)a=find(A)返回数组A中非零元素的单下标索引。
(2)[a,b]=find(A)返回数组A中非零元素的双下标索引方式。

在这里插入图片描述

数组排序
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值