
2.4 向量
2.4.1 向量的生成
本书中,在不需要强调向量的特殊性时,向量和矩阵统称为矩阵(或数组)。向量可以看成是一种特殊的矩阵,因此矩阵的运算对向量同样适用。
向量的生成有直接输入法、冒号法和利用MATLAB函数创建3种方法。
1.直接输入法
生成向量最直接的方法就是在命令窗口中直接输入。格式上的要求如下。
◆向量元素需要用“[]”括起来。
◆元素之间可以用以空格、逗号或分号分隔。
说明 用空格和逗号分隔生成行向量,用分号分隔形成列向量。
例2-15:创建向量示例。
解:MATLAB程序如下。



2.冒号法
基本格式是x=first:increment:last,表示创建一个从first开始,到last结束,数据元素的增量为increment的向量。若增量为1,上面创建向量的方式简写为x=first:last。

例2-16:创建一个从0开始,增量为-2,到-10结束的向量x
解:MATLAB程序如下。

向量的创建还可以使用引用向量元素的方式,具体调用见表2-15。
表2-15 引用向量元素的方式


例2-17:向量元素的引用示例。
解:MATLAB程序如下。

3.利用函数创建向量
(1)linspace函数
linspace函数创建一个线性间隔的向量,通过直接定义数据元素个数,而不是数据元素之间的增量来创建向量。此函数的调用格式见表2-16。
表2-16 linspace调用格式

例2-18:创建一个从0开始,到1结束的向量x。
解:MATLAB程序如下。


(2)logspace函数
logspace函数创建一个对数分隔的向量,与linspace一样,logspace也通过直接定义向量元素个数,而不是数据元素之间的增量来创建数组。其调用格式见表2-17。
表2-17 logspace调用格式


例2-19:创建一个从10开始,到π结束,包含10个数据元素的对数间距的向量x
解:MATLAB程序如下。

2.4.2 向量运算
向量是矢量运算的基础,所以还有一些特殊的运算,主要包括向量的点积、叉积和混合积。
1.向量的点积运算
在MATLAB中,对于向量a、b,其点积可以利用a·b得到,也可以直接用命令dot算出,该命令的调用格式见表2-18。
表2-18 dot调用格式


例2-20:向量的点积运算示例。
解:MATLAB程序如下。

2.向量的叉积运算
我们知道,在空间解析几何学中,两个向量叉积的结果是一个过两相交向量交点且垂直于两向量所在平面的向量。在MATLAB中,向量的叉积运算可由函数cross来实现。cross函数调用格式见表2-19。
表2-19 cross调用格式

例2-21:向量的叉积运算示例。
解:MATLAB程序如下。


3.向量的混合积运算
在MATLAB中,向量的混合积运算可由以上两个函数(dot、cross)共同来实现。
例2-22:向量的混合积运算示例。
解:MATLAB程序如下。


上例表示,首先进行向量b与c的叉积运算,然后再把叉积的结果与向量a进行点积运算。