数学建模 —— MATLAB中的向量

目录

向量的创建方法

(1)直接输入法

(2)冒号法(常用)

 (3)利用MATLAB函数创建

linspace函数

logspace函数

向量元素的引用

(1)单个元素引用

(2)多个元素引用

向量元素的修改和删除


向量的创建方法

MATLAB中,向量的创建方法主要有三种,分别是:直接输入法、冒号法和利用 MATLAB  的函数创建。下面我们来进行介绍:


(1)直接输入法

向量元素需要用英文的中括号“[ ]”括起来,元素之间用空格、逗号、分号或按回车键分隔,就可以创建对应的向量。若元素之间用空格、逗号分隔,则创建的是行向量;若用分号、 回车键分隔,则创建的是列向量。(注意:这里的逗号和分号都是英文输入法下输入的,不能用中文的逗号或分号)

举例:a=[135] 和 a=[1,3,5]  都可以创建包含元素1,3,5的行向量,并将这个行向量的值赋值给a; 而 b=[1;3;5] 创建的是包含元素1,3,5的列向量。


(2)冒号法(常用)

我们可以利用命令:A:step:B 来创建一个行向量。(冒号也要是英文的!)

其中,A是起始值,step是每次递增或递减的步长,B 是终止值(不一定刚好停在这里)。

若step 等于1,则可以直接简写成A:B。

直接看上面的概念不够直观,下面我们举几个例子,大家根据例子来理解会很轻松。

代码                              结果和相应的解释

1:2:7                              [1 3 5 7]       %每次增加2,直到最后到了7

1:2:8

[1 3 5 7]     %每次增加2,到了7后再加2等于9,

比8要大,所以到了7就停止了。

1:1:100或1:100              [1 2 3 4.....98 99 100] %步长为1时可以省略

1:10:3                             1 %从1开始,增加10等于11,比3还要大,所以返回1

5:2:1

空的1×0 double行向量  %若A>B且步长step >0,

回空的向量。

10:-1:6                          [10 9 8 7 6]%步长为-1,因此会从10开始递减

10:-10:50

空的1×0 double行向量  %若A<B且步长step <0,则会返回 空的向量。

1:0:2                              空的1×0 double行向量 %若step =θ,则返回空的向量。

 上表中,有三种情况都会导致MATLAB 返回空的向量:空的1×0 double 行向量。 怎么理解这个返回结果呢?  这个“1×0”指的是向量的维度,你可以理解为1行0列,即这个向量是空的,不存在元素。 MATLAB中,我们可以直接使用命令[]创建空的向量。


 (3)利用MATLAB函数创建

我们主要介绍两个函数linspace 和 logspace,  它们分别用来创建等差数列和等比数列


linspace函数

首先介绍 linspace 函数,它有两种用法,区别在于是否给定第三个输入参数 n, 如果我们 不指定n,  则 MATLAB会默认 n=100。这个函数使用的频率也很高,大家需要掌握。

  linspace(a,b):该命令用来创建一个行向量,向量中的第一个元素为a, 最后一个元素为b,形成总数为100个元素的线性间隔的向量。

● linspace(a,b,n):该命令用来创建一个行向量,向量中的第一个元素为a,   最后一 个元素为b,形成总数为n 个元素的线性间隔的向量。

代码          结果和相应的解释

linspace(1,100,10)

[11223344556677889100]    % 个数为1,最后 个数为100,整 个向量构成了一个等差数列,由10个元素组成

linspace(1,99,10)

[1 11.8889 22.7778 33.6667 44.5556 55.4444 66.3333 77.2222 88.1111 99]

%第一个数为1,最后一个数为99,整个向量由10个元素组成构成了一个等

差数列,MATLAB会自动计算等差数列的步长。

linspace(1,10)

[11.09091.18181.27271.3636 ....9.81829.909110]

%如果不指定第三个输入参数n,则默认生成100个元素的等差数列

linspace(100,1,10)

[100 89 78 67 56 45 34 23 12 1]%如果a>b,则步长是负数

 注意:

  1. (1)linspace不需要指定步长,MATLAB会根据你给定的元素个数n 自动计算出来;而使用冒号法可以自己指定步长。
  2. (2)linspace生成的向量的最后一个元素一定是b,而使用冒号法 a:step:b生成的向量的最后元素不一定是b。

logspace函数

logspace(a,b):    创建一个行向量,其第一个元素为10^a,   最后一个元素为10^b,  形成总数为50个元素的等比数列向量。

logspace(a,b,n):创建一个行向量,其第一个元素为10^a,最后一个元素为10^b,形成总数为n个元素的等比数列向量。

代码

结果和相应的解释

logspace(2,1,5)

[100 56.234 31.623 17.783 10]

%第一个数为10^2,最后一个数为10^1,5个元素组成的等比数列

logspace(log10(2),log10(1024),10)    [2 4 8 16 32 64 128 256 512 1024]               

                                                        %第一个数为2,最后一个数为1024,10个元素组成的等比数列


向量元素的引用

MATLAB 中,可以使用length  函数或 numel 函数来计算向量中包含的元素个数。

例如:a=[1,3,8,9,7];length(a) 或 numel(a) 的返回结果是5,因为向量a中有五个元素。

假如我们有一个行向量 a,  里面包含了n 个元素 (n 是大于等于1的常数),它们分别是 a₁,a₂,…,an.   那么我们可以列一个表格:

向量的元素

a₁

a₂

a₃

······

an-1

an

索引(下标)

1

2

3

·······

n-1

n

从上表可以看出,索引就是指某一个元素在向量中对应的位置,也可以称为元素在向量中所处的下标,在MATLAB中,向量的索引是从1开始的。


(1)单个元素引用

我们提取向量a 中单个元素的方法很简单,只需要利用a(index)命令,小括号中的 index就是你要提取的对应元素的索引。(注意:创建向量用中括号,提取元素要用小括号哦!)

报错的两种情况:1.索引超出数组元素的数目数组        2.索引取成0、负数或者小数


(2)多个元素引用

类似的,我们也可以利用向量的索引来同时提取多个位置的元素,这时候只需要将 index 设置成一个向量,index 中放入我们想要提取的元素的索引,然后使用a(index)命令即可。

例如,以向量 a [ 2 4 8 16 32 64 128 256 512 1024 ] 我们令 index = [ 1 3 5 7 9 ],那么 a(index)的结果为[2 8 32 128 512],即我们提取了向量a中奇数位置的元素。熟悉向量冒号创建方法的同学应该能够看出,index 等于1 : 2 : 9,因此我们可以直接将a(index)写成 a(1: 2 : 9), 这就表示提取 a 中奇数位置的元素;类似的,提取 a 中偶数位置 元素的命令是a(2 : 2 : 10),如果你不熟练的话,可以分成两步写,即先令 ind=2:2:10,然后再使 用a(ind)的命令。当然,对于同一个位置的元素,我们也可以提取多次,例如:ind = [1 2 2 3 3 3],那么 a(ind)得到的结果应该是[ 2 4 4 8 8 8 ],以后熟悉的话可以直接写成a( [ 1 2 2 3 3 3 ] )

技巧:使用end 索引

不知道向量 a 中有多少个元素,也不想使用length 函数或者numel函数来计算向量中元素的个数,那能不能提取出a 中奇数位置的元素呢?这时候就需要用到一 个特殊的关键字:end。 它有很多种用法,在这里end 可以用来替代向量的最后一个索引

例如,我现在要访问a 中第五个至最后一个元素,那么我们可以直接使用a(5:end), 这里的end 就表示了a 的最后一个索引;另外,我们还可以对end 进行计算,例如要访问a 中第五个至倒数第三个元素,我们可以使用a(5:end-2),得到的结果为[ 32 64 128 256 ]。


向量元素的修改和删除

前面我们介绍了向量元素的引用,我们可以利用等号赋值的方法对引用位置的元素进行修改和删除。令向量a = [ 2 4 8 16 32 64 128],请大家依次执行下面的代码:

请依次执行下面的代码             修改后的向量a

a(1)=4 %第一个元素改成4

[4 4 8 16 32 64 128]

a([1,3])=[50 60]%第1个位置元素改成50;第3个位置元素改成60

[50 4 60 16 32 64 128]

a(1:3)=[56]%赋值时,左右两侧的元素个数要相 同,左边引用了3个位置,右侧的向量长度为2

MATLAB报错:无法执行赋值,因为左侧和右侧的

元素数目不同。

a(2:4)=100 %如果右边为常数,则将指定位置的 元素全部变成这个常数。

%第2至4号位的元素改为了100

[50 100 100 100 32 64 128]

a(10)=88 %把索引为10的元素赋值为88,如果 超过了最大索引,则会自动拓展向量的大小

[50 100 100 100 32 64 128 0 0 88]

%索引8和9的位置会自动用0进行赋值

 如果我们将等号右侧变成空向量[],则表示删除对应位置的元素。

a(1)=[ ]%删除a的第一个元素

[100 100 100 32 64 128]

a(end-1:end)=[ ]%删除a中最后两个元素

[100 100 100 32 64]

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
标题——作者——出处 基于蚁群优化算法递归神经网络的短期负荷预测 蚁群算法的小改进 基于蚁群算法的无人机任务规划 多态蚁群算法 MCM基板互连测试的单探针路径优化研究 改进的增强型蚁群算法 基于云模型理论的蚁群算法改进研究 基于禁忌搜索与蚁群最优结合算法的配电网规划 自适应蚁群算法在序比对的应用 基于蚁群算法的QoS多播路由优化算法 多目标优化问题的蚁群算法研究 多线程蚁群算法及其在最短路问题上的应用研究 改进的蚁群算法在2D HP模型的应用 制造系统通用作业计划与蚁群算法优化 基于混合行为蚁群算法的研究 火力优化分配问题的小生境遗传蚂蚁算法 基于蚁群算法的对等网模拟器的设计与实现 基于粗粒度模型的蚁群优化并行算法 动态跃迁转移蚁群算法 基于人工免疫算法和蚁群算法求解旅行商问题 基于信息素异步更新的蚁群算法 用于连续函数优化的蚁群算法 求解复杂多阶段决策问题的动态窗口蚁群优化算法 蚁群算法在铸造生产配料优化的应用 多阶段输电网络最优规划的并行蚁群算法 求解旅行商问题的混合粒子群优化算法 微粒群优化算法研究现状及其进展 随机摄动蚁群算法的收敛性及其数值特性分析 广义蚁群与粒子群结合算法在电力系统经济负荷分配的应用 改进的蚁群算法及其在TSP的应用研究 蚁群算法的全局收敛性研究及改进 房地产开发项目投资组合优化的改进蚁群算法 一种改进的蚁群算法用于灰色约束非线性规划问题求解 一种自适应蚁群算法及其仿真研究 一种动态自适应蚁群算法 蚂蚁群落优化算法在蛋白质折叠二维亲-疏水格点模型的应用 用改进蚁群算法求解函数优化问题 连续优化问题的蚁群算法研究进展 蚁群算法概述 Ant colony system algorithm for the optimization of beer fermentation control 蚁群算法在K—TSP问题的应用 Parallel ant colony algorithm and its application in the capacitated lot sizing problem for an agile supply chain 基于遗传蚁群算法的机器人全局路径规划研究 改进的蚁群算法在矿山物流配送路径优化的研究 基于蚁群算法的配电网络综合优化方法 基于蚁群算法的分类规则挖掘算法 蚁群算法在连续性空间优化问题的应用 蚁群算法在矿井通风系统优化设计的应用 基于蚁群算法的液压土锚钻机动力头优化设计 改进蚁群算法设计拉式膜片弹簧 计算机科学技术 基本蚁群算法及其改进 TSP改进算法及在PCB数控加工刀具轨迹的应用 可靠性优化的蚁群算法 对一类带聚类特征TSP问题的蚁群算法求解 蚁群算法理论及应用研究的进展 基于二进制编码的蚁群优化算法及其收敛性分析 蚁群算法的理论及其应用 基于蚁群行为仿真的影像纹理分类 启发式蚁群算法及其在高填石路堤稳定性分析的应用 蚁群算法的研究现状 一种快速全局优化的改进蚁群算法及仿真 聚类问题的蚁群算法 蚁群最优化——模型、算法及应用综述 基于信息熵的改进蚁群算法及其应用 机载公共设备综合管理系统任务分配算法研究 基于改进蚁群算法的飞机低空突防航路规划 利用信息量留存的蚁群遗传算法 An Improved Heuristic Ant-Clustering Algorithm 改进型蚁群算法在内燃机径向滑动轴承优化设计的应用 基于蚁群算法的PID参数优化 基于蚁群算法的复杂系统多故障状态的决策 蚁群算法在数据挖掘的应用研究 基于蚁群算法的基因联接学习遗传算法 基于细粒度模型的并行蚁群优化算法 Binary-Coding-Based Ant Colony Optimization and Its Convergence 运载火箭控制系统漏电故障诊断研究 混沌扰动启发式蚁群算法及其在边坡非圆弧临界滑动面搜索的应用 蚁群算法原理的仿真研究 Hopfield neural network based on ant system 蚁群算法及其实现方法研究 分层实体制造激光头切割路径的建模与优化 配送网络规划蚁群算法 基于蚁群算法的城域交通控制实时滚动优化 基于蚁群算法的复合形法及其在边坡稳定分析的应用 Ant Colony Algorithm for Solving QoS Routing Problem 多产品间歇过程调度问题的建模与优化 基于蚁群算法的两地之间的最佳路径选择 蚁群算法求解问题时易产生的误区及对策 用双向收敛蚁群算法解作业车间调度问题 物流配送路径安排问题的混合蚁群算法 求解TSP问题的模式学习并行蚁群算法 基于蚁群算法的三维空间机器人路径规划 蚁群优化算法及其应用 蚁群算法不确定性分析 一种求解TSP问题的相遇蚁群算法 基于蚁群优化算法的彩色图像颜色聚类的研究 钣金件数控激光切割割嘴路径的优化 基于蚁群算法的图像分割方法 一种基于蚁群算法的聚类组合方法 圆排问题的蚁群模拟退火算法 智能混合优化策略及其在流水作业调度的应用 蚁群算法在QoS网络路由的应用 一种改进的自适应路由算法 基于蚁群算法的煤炭运输优化方法 基于蚁群智能和支持向量机的人脸性别分类方法 蚁群算法在啤酒发酵控制优化的应用 一种基于时延信息的多QoS快速自适应路由算法 蚁群算法参数α、β、ρ设置的研究——以TSP问题为例 基于人工蚁群优化的矢量量化码书设计算法 具有自适应杂交特征的蚁群算法 蚁群算法在原料矿粉混匀优化的应用 基于多Agent的蚁群算法在车间动态调度的应用研究 用蚁群优化算法求解国旅行商问题 蚁群算法在婴儿营养米粉配方的应用 蚁群算法在机械优化设计的应用 蚁群优化算法的研究现状及研究展望 蚁群优化算法及其应用研究进展 蚁群算法的理论与应用 简单蚁群算法的仿真分析 一种改进的蚁群算法求解最短路径问题 基于模式求解旅行商问题的蚁群算法 一种求解TSP的混合型蚁群算法 基于MATLAB的改进型基本蚁群算法 动态蚁群算法求解TSP问题 用蚁群算法求解类TSP问题的研究 蚁群算法求解连续空间优化问题的一种方法 用混合型蚂蚁群算法求解TSP问题 求解复杂TSP问题的随机扰动蚁群算法 基于蚁群算法的国旅行商问题满意解 蚁群算法的研究现状和应用及蚂蚁智能体的硬件实现 蚁群算法概述 蚁群算法的研究现状及其展望 基于蚁群算法的配电网网架优化规划方法 用于一般函数优化的蚁群算法 协同模型与遗传算法的集成 基于蚁群最优的输电网络扩展规划 自适应蚁群算法 凸整数规划问题的混合蚁群算法 一种新的进化算法—蛟群算法 基于协同工作方式的一种蚁群布线系统
2.1 向量、坐标变换和空间描述 2.1.1 向量 向量是一种在几何和物理学常用的数学工具,它可以表示物理量的大小和方向。在二维情况下,向量可以用一个有序数对(x,y)表示。在三维情况下,向量可以用一个有序三元组(x,y,z)表示。 向量的长度通常用符号||v||表示,表示向量v的大小,也称作模。向量的方向可以用一个指向向量的箭头表示。 向量可以进行加、减、数乘、点乘等运算。其,加法和减法的规则如下: $$(x_1,y_1)+(x_2,y_2)=(x_1+x_2,y_1+y_2)$$ $$(x_1,y_1)-(x_2,y_2)=(x_1-x_2,y_1-y_2)$$ 数乘的规则如下: $$k(x,y)=(kx,ky)$$ 点乘的规则如下: $$(x_1,y_1)\cdot(x_2,y_2)=x_1x_2+y_1y_2$$ 2.1.2 坐标变换 在三维空间,物体的位置可以用一个有序三元组(x,y,z)表示。但是,当我们需要描述物体在不同坐标系下的位置时,就需要进行坐标变换。 假设有两个坐标系,分别为XYZ和xyz,它们之间的关系可以用一个转换矩阵T表示。当一个物体在XYZ坐标系下的位置为P=(x,y,z)时,它在xyz坐标系下的位置可以通过下面的公式计算得到: $$\begin{bmatrix} x' \\ y' \\ z' \end{bmatrix}=T\begin{bmatrix} x \\ y \\ z \end{bmatrix}$$ 其,(x',y',z')表示物体在xyz坐标系下的位置。 2.1.3 空间描述 在机器人学,常用的空间描述方式有以下几种: (1) 位姿表示法 位姿表示法是机器人学最常用的空间描述方式之一。它用一个有序六元组(x,y,z,roll,pitch,yaw)来表示机器人的位置和姿态。其,(x,y,z)表示机器人的位置,(roll,pitch,yaw)表示机器人的姿态。 (2) 关节角表示法 关节角表示法是机器人学另一种常用的空间描述方式。它用一个有序n元组(q1,q2,...,qn)来表示机器人的关节角度。其,q1表示第1个关节的角度,q2表示第2个关节的角度,以此类推。 (3) 变换矩阵表示法 变换矩阵表示法是一种通用的空间描述方式。它用一个4×4的变换矩阵T来表示机器人的位置和姿态。其,T的前三行表示机器人的姿态,第四行表示机器人的位置。 (4) 旋转矩阵表示法 旋转矩阵表示法是一种特殊的变换矩阵表示法。它用一个3×3的旋转矩阵R来表示机器人的姿态。其,R的每一表示机器人在世界坐标系下的x、y、z轴方向。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值