MATLAB中的大多数二进制(双输入)运算符和函数®金宝app支持数字数组兼容的大小.对于每个维度,如果输入的维度大小相同或其中一个为1,则两个输入具有兼容的大小。在最简单的情况下,如果两个数组大小完全相同或其中一个是标量,那么它们是兼容的。MATLAB隐式扩展具有兼容大小的数组,使其在执行元素操作或函数期间具有相同的大小。
这是一些标量、向量和矩阵的组合,它们的大小是一致的:
两个输入的大小完全相同。
一个输入是标量。
一个输入是一个矩阵,另一个输入是具有相同行数的列向量。
一个输入是列向量,另一个是行向量。
在MATLAB中,每个数组的尾维数都是1。对于多维数组,这意味着3 × 4矩阵与大小为3 × 4 × 1 × 1 × 1的矩阵相同。具有兼容大小的多维数组示例如下:
一个输入是一个矩阵,另一个是具有相同行数和列数的三维数组。
一个输入是一个矩阵,另一个是一个三维数组。这些维数要么相同要么其中一个是1。
对于空数组或维数为零的数组,规则也是一样的。不等于1的维度的大小决定输出的大小。这意味着大小为0的维度必须与另一个数组中大小为1或0的维度配对,并且输出的维度大小为0。
A: 1 × 0 B: 3 × 1结果:3 × 0
不兼容的输入具有无法隐式扩展为相同大小的大小。例如:
其中一个尺寸不相等,都不是1。
A: 3 × 2 B: 4 × 2
两个长度不相同的非标量行向量。
A: 1 × 3 B: 1 × 4
为了简化向量-矩阵运算,使用隐式展开的维函数,例如总和
,的意思是
,最小值
等等。
例如,计算矩阵中每一列的平均值,然后从每个元素中减去平均值。
=魔法(3)
A = 8 1 6 3 5 7 4 9 2
C =意味着(A)
答案:C
A - C
Ans = 3 -4 1 -2 0 2 -1 4 -3
行向量和列向量具有兼容的大小,当您对它们执行操作时,结果是一个矩阵。
例如,添加行和列向量。结果是一样的bsxfun (@plus a, b)
.
A = [1 2 3 4]
答案:1 2 3 4
b = [5;6;7]
Ans = 5 6 7
a + b
Ans = 6 7 8 9 7 8 9 10 8 9 10 11