2.2.1 向量的生成
在MATLAB中,生成向量主要有3种方案:直接输入法、冒号表达式法和函数法,现分述如下。
1.直接输入法
在命令提示符之后直接输入一个向量,其格式是:向量名=[a1, a2, a3, …]
【例2.1】 直接法输入向量。
>>A=[2,3,4,5,6], B=[1;2;3;4;5], C=[4 5 6 7 8 9]; %最后一个分号表示执行后不 显示C
其运行结果为
A = 2 3 4 5 6 B = 1 2 3 4 5
2.冒号表达式法
利用冒号表达式a1:step:an也能生成向量,式中a1为向量的第一个元素,an为向量最后一个元素的限定值,step是变化步长,省略步长时系统默认为1。
【例2.2】 用冒号表达式生成向量。
>>A=1:2:10, B=1:10, C=10:-1:1, D=10:2:4, E=2:-1:10
其运行结果为
A = 1 3 5 7 9 B = 1 2 3 4 5 6 7 8 9 10 C = 10 9 8 7 6 5 4 3 2 1 D = Empty matrix: 1-by-0 E = Empty matrix: 1-by-0
试分析D、E不能生成的原因。
3.函数法
有两个函数可用来直接生成向量。一个实现线性等分——linspace( );另一个实现对数等分——logspace( )。
线性等分的通用格式为A=linspace(a1, an , n),其中a1是向量的首元素,an是向量的尾元素,n把a1至an之间的区间分成向量的首尾之外的其他n-2个元素。省略n则默认生成100个元素的向量。
【例2.3】 请在MATLAB命令窗口输入以下语句,观察用线性等分函数生成向量的结果。
>>A=linspace(1,50), B=linspace(1,30,10)
对数等分的通用格式为A=logspace(a1, an , n),其中a1是向量首元素的幂,即A(1)=10a1;an是向量尾元素的幂,即A(n)=10an。n是向量的维数。省略n则默认生成50个元素的对数等分向量。
【例2.4】 请在MATLAB命令窗口输入以下语句,观察用对数等分函数生成向量的结果。
>>A=logspace(0,49), B=logspace(0,4,5)
尽管用冒号表达式和线性等分函数都能生成线性等分向量,但在使用时有几点区别值得注意:
(1)an在冒号表达式中,它不一定恰好是向量的最后一个元素,只有当向量的倒数第二个元素加步长等于an时,an才正好构成尾元素。如果一定要构成一个以an为末尾元素的向量,那么最可靠的生成方法是用线性等分函数。
(2)在使用线性等分函数前,必须先确定生成向量的元素个数,但使用冒号表达式将依着步长和an的限制去生成向量,用不着去考虑元素个数的多少。
(3)实际应用时,同时限定尾元素和步长去生成向量,有时可能会出现矛盾,此时必须做出取舍。要么坚持步长优先,调整尾元素限制;要么坚持尾元素限制,去修改等分步长。
2.2 向量运算
向量是高等数学、线性代数中讨论过的概念。虽是一个数学的概念,但它同时又在力学、电磁学等许多领域中被广泛应用。电子信息学科的电磁场理论课程就以向量分析和场论作为其数学基础。
向量是一个有方向的量。在平面解析几何中,它用坐标表示成从原点出发到平面上的一点(a, b),数据对(a, b)称为一个二维向量。立体解析几何中,则用坐标表示成(a, b, c),数据组(a, b, c)称为三维向量。线性代数推广了这一概念,提出了n维向量,在线性代数中,n维向量用n个元素的数据组表示。
MATLAB讨论的向量以线性代数的向量为起点,多可达n维抽象空间,少可应用到解决平面和空间的向量运算问题。下面首先讨论在MATLAB中如何生成向量的问题。