(1) MATLAB 变量的代数运算
如果给定两个矩阵 A 和 B, 则我们可以用 A+B, A-B, A*B 可以立即得出其加、减和乘运算的结果。若这两个矩阵数学上不可以这样运算,则将得出错误信息,并终止正在运行的程序。
在 MATLAB 下,如果 A 和 B 中有一个是标量,则可以无条件地进行这样的运算。MATLAB 不介意这些变量是纯实数还是含有虚部的复数。
矩阵的除法实际上就是线性方程的求解,如 Ax=B 这一线性方程的解即为 x=inv(A)*B, 或更简单地 x=A\B。这又称为矩阵的左除,而 x=B/A 称为矩阵的右除。
方阵的乘方可以由 ^ 算符直接得出,如 A^n。用 MATLKAB 这样的语言,你可以轻易地算出 A^0.1, 亦即 A 矩阵开 10 次方得出的主根。
矩阵的点运算也是相当重要的。所谓点运算即两个矩阵相应元素的元素,如 A.*B 得出的是 A 和 B 对应元素的积,故一般情况下 A*B 不等于 A.*B。矩阵的点乘又称为其 Hadamard 积。点运算的概念又可以容易地用到点乘方上,例如 A.^2, A.^A 等都是可以接受的运算式子。
Kronecker 乘积是 MATLAB 在矩阵运算中的另一个有意义的问题,用 kron(A,B) 立即可以得出两个矩阵的 Kronecker 乘积。
(2) 逻辑运算
MATLAB 并没有单独定义逻辑变量。在 MATLAB 中,数值只有 0 和“非 0” 的区分。非 0 往往被认为是逻辑真,或逻辑 1。除了单独两个数值的逻辑运算外,还支持矩阵的逻辑运算,如 A & B, A | B, 和 ~A 分别表示逻辑与、或、非的运算。例如,下面的 A 和 B 矩阵与运算将得出如下结果
>> A=[0 2 3 4;1 3 5 0]; B=[1 0 5 3;1 5 0 5]; A&B
ans =
0 0 1 1
1 1 0 0
(3) 关系表达式与表达式函数
MATLAB 的大于、小于和等于等关系分别由 >、< 和 == 表示。判定方法不完全等同于 C 这类只能处理单个标量的语言。MATLAB 关系表达式返回的是整个矩阵。例如,比较两个矩阵 A 和 B 是否相等,则可以给出如下命令,并得出相应的结果
>> A=[0 2 3 4;1 3 5 0]; B=[1 0 5 3;1 5 0 5]; A==B
ans =
0 0 0 0
1 0 0 0
确实使得 A 和 B 对应元素相等的位将返回 1,否则返回 0。MATLAB 还可以用 >= 和 <= 这样的符号来比较矩阵对应元素的大小。
另外,MATLAB 还提供了 all() 和 any() 两个函数来对矩阵参数作逻辑判定。all() 函数在其中变元全部非 0 时返回 1,而 any() 函数在变元有非零元素返回 1。find() 函数将返回逻辑关系全部满足时的矩阵下标值,这个函数在编程中是相当常用。还可以使用 isnan() 类函数来判定矩阵中是否含有 NaN 型数据。如果有则返回这样参数的下标。此类函数还有 isfinite(), isclass(), ishandle() 等。
(4) 其他运算
MATLAB 还支持其他运算,如取整、求余数等。可以使用 rond)_, fix(), rem() 等来实现。