添加两个不同维度的矩阵

Md.*_*san 1 python matlab numpy linear-algebra multidimensional-array

A是一个矩阵[m x n]的元素,并B与其他矩阵[m x n x o]的元素.有没有添加两个矩阵,使得任何线性代数的方法C = A + B,其中C将在[m x n x o]没有任何性质沿着循环的o尺寸?

例:

A =

 1     2     5     6
 1     2     3     4
 1     5     8     9
Run Code Online (Sandbox Code Playgroud)

B(:,:,1)=

 1     1     1     1
 1     1     1     1
 1     1     1     1
Run Code Online (Sandbox Code Playgroud)

B(:,:,2)=

 1     1     1     1
 1     1     1     1
 1     1     1     1
Run Code Online (Sandbox Code Playgroud)

B(:,:,3)=

 1     1     1     1
 1     1     1     1
 1     1     1     1
Run Code Online (Sandbox Code Playgroud)

C = A + B.

C(:,:,1)=

 2     3     6     7
 2     3     4     5
 2     6     9    10
Run Code Online (Sandbox Code Playgroud)

C(:,:,2)=

 2     3     6     7
 2     3     4     5
 2     6     9    10
Run Code Online (Sandbox Code Playgroud)

C(:,:,3)=

 2     3     6     7
 2     3     4     5
 2     6     9    10
Run Code Online (Sandbox Code Playgroud)

Dev*_*-iL 5

在MATLAB中,这可以使用隐式扩展(R2016b向前)或bsxfun(@plus,...).

以下内容适用于所有最新的MATLAB版本:

C = bsxfun(@plus,A,B);
Run Code Online (Sandbox Code Playgroud)

在NumPy中,这种行为被称为"广播".