主要内容

基本操作的兼容数组大小

MATLAB中的大多数二进制(双输入)运算符和函数®金宝app支持具有兼容尺寸。如果对于每个维度,输入的维度大小相同或其中一个为1,则两个输入具有兼容的大小。在最简单的情况下,如果两个数组大小完全相同或一个为标量,则两个数组大小是兼容的。在执行eleme期间,MATLAB隐式将具有兼容大小的数组扩展为相同大小nt智能操作或功能。

具有兼容大小的输入

二维输入

这些是具有兼容大小的标量、向量和矩阵的一些组合:

  • 两个大小完全相同的输入。

  • 一个输入是标量。

  • 一个输入是矩阵,另一个是具有相同行数的列向量。

  • 一个输入是列向量,另一个是行向量。

多维数组

在MATLAB中,每个数组的尾维数都是1。对于多维数组,这意味着3 × 4矩阵与大小为3 × 4 × 1 × 1 × 1的矩阵相同。具有兼容大小的多维数组示例如下:

  • 一个输入是矩阵,另一个输入是具有相同行数和列数的三维数组。

  • 一个输入是矩阵,另一个是三维数组。维度要么相同,要么其中一个为1。

空数组

对于空数组或维度大小为零的数组,规则相同。不等于1的维度大小决定了输出的大小。这意味着大小为零的维度必须与另一个数组中大小为1或0的维度配对,并且输出的维度大小为0。

A:1比0 B:3比1结果:3比0

大小不兼容的输入

不兼容的输入具有无法隐式扩展为相同大小的大小。例如:

  • 其中一个尺寸不相等,两个尺寸都不相等1。

    A:3乘2 B:4乘2
  • 长度不相同的两个非标度行向量。

    A:1乘3 B:1乘4

例子

从矩阵中减去向量

要简化向量矩阵运算,请使用隐式展开和维数函数,如总和,的意思是,等。

例如,计算矩阵中每列的平均值,然后从每个元素中减去平均值。

A=魔术(3)
A=816357492
C=平均值(A)
C=5
A-C
ans=3-41-20-2-14-3

添加行和列向量

行和列向量具有兼容的大小,当您对它们执行操作时,结果是一个矩阵。

例如,添加行和列向量。结果与实验结果一致bsxfun(@plus,a,b).

a=[1 2 3 4]
ans=1 2 3 4
b=[5;6;7]
ans=567
a+b
ans=6789891011

另见

相关的话题