文档

基本操作的兼容数组大小

MATLAB中的大多数二进制(双输入)运算符和函数®万博1manbetx支持具有的数字数组兼容的大小.如果对于每个维度,两个输入的维度大小相同或其中一个为1,则两个输入具有兼容的尺寸。在最简单的情况下,如果两个数组大小完全相同,或者其中一个是标量,则两个数组大小是兼容的。在执行基于元素的操作或函数时,MATLAB隐式地将具有兼容大小的数组扩展为相同的大小。

尺寸兼容的输入

二维输入

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

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

  • 一个输入是标量。

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

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

多维数组

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

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

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

空数组

对于空数组或维度大小为0的数组,规则是相同的。不等于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 = 5 5
A - c
Ans = 3 -4 1 -2 0 2 -1 4 -3

添加行和列向量

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

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

A = [1 2 3 4]
Ans = 1 2 3 4
B = [5;6;7]
Ans = 5 6 7
A + b
Ans = 6 7 8 9 7 8 9 9 10 8 9 10 11

另请参阅

相关的话题

这个话题有帮助吗?