数学实验教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 MATLAB中的数组及其运算

现代科学计算都基于多维空间,因此MATLAB中的数值计算都是以向量或矩阵的形式来定义的。需要注意的是,MATLAB中定义的数组(向量)运算,无论是运算符号还是运算规则,都与我们熟悉的线性代数中的定义有一定差异。

MATLAB中数组(向量)和矩阵的定义非常简便,比如在命令窗口输入:

x=[123456]

x=[1, 2, 3, 4, 5, 6]

即可定义一个6维行向量或1×6的矩阵。输入命令:

x=[123; 456; 789]

得到的是一个3×3的矩阵,括号内的“; ”表示分行。

MATLAB中可以定义多种形式的数组(向量)。设m<n,命令如表1-1所示,

表1-1

其中,linspace(m, n, k)是将 [m, n] 进行k等分,取其端点。

上面介绍的都是如何定义行向量,要定义列向量可以用命令:

x=[1; 2; 3; 4; 5]

如果已有行向量x,则可以对其转置获得列向量,转置命令为:

y=x′

在MATLAB中,数组与数字之间可以定义加减乘除。比如设X=[a, b, c, d, e], q为标量,则有如下计算规则:

X+q=[ a+q, b+q, c+q, d+q, e+q]

X∗q=[ a∗q, b∗q, c∗q, d∗q, e∗q]

X/q=[ a/q, b/q, c/q, d/q, e/q]

X.\q=[q/a, q/b, q/c, q/d, q/e]

务必要特别注意上述代码的差异,很多编程错误都缘于这些基本的运算符号输入有误。

设X=[a, b, c, d, e], q为标量,数组的幂运算代码及其计算规则为

X.^q=[ a^q, b^q, c^q, d^q, e^q]

q.^X=[ q^a, q^b, q^c, q^d, q^e]

设X=[a, b, c, d], Y=[e, f, g, h],则MATLAB 定义的数组之间的运算规则如下:

X+Y=[ a+e, b+f, c+g, d+h]

X. ∗Y=[ a∗e, b∗f, c∗g, d∗h]

X. /Y=[ a/e, b/f, c/g, d/h]

X.\Y=[ e/a, f/b,g/c, h/d]

X.^Y=[ a^e, b^f, c^g, d^h]

显然,MATLAB中定义的数组(向量)运算种类比线性代数课程中的要多,尤其要注意其中向量点乘X. ∗Y、向量点除X. /Y和X.\Y以及向量指数运算X.^Y的正确代码和意义。