Vectorized Multi-Dimensional Matrix Multiplication

Take Any N-D Matrix and Multiply it by another N-D Matrix Without a For-Loop

您现在正在关注此提交

If you want to multiply multi-dimensional matrices together without having to write a for-loop to cycle through each additional dimension beyond two, this routine is for you. Not a single for-loop was used in the development of this routine. Consequently, you should see a significant runtime improvement when using the multi-dimensional matrix multiply operations contained in this code.
mntimes will support 2-D matrix multiplication much like the built-in mtimes.m routine (so you can overload it if desired), it will support 3-D matrix multiplication, 4-D multiplication, and so on (until you run out of system memory). Matrices don't have to be the same size (i.e. 3x3 * 3x3) they can be 1x3 * 3x1, 1x3 * 3x3, 3x3 * 3x1, the choices are unlimited as long as it is a valid 2-D operation. If you are sure to identify which dimension corresponds to a row, and which to a column there shouldn't be a N-D matrix case this code can't handle.
Example Function call:
z = mntimes(x,y,xrowdim,xcoldim,yrowdim,ycoldim);
Input List:
x - N-D input matrix
y - N-D input matrix
xrowdim - row dimension specifier for x
xcoldim - column dimension specifier for x
yrowdim - row dimension specifier for y
ycoldim - column dimension specifier for y
Output List:
z - N-D output matrix (resulting product of the z = x*y operation)

引用格式

Darin Koblick (2026). Vectorized Multi-Dimensional Matrix Multiplication (https://ww2.mathworks.cn/matlabcentral/fileexchange/47092-vectorized-multi-dimensional-matrix-multiplication), MATLAB Central File Exchange. 检索时间: .

致谢

启发作品: mmDerivative(t,y)

类别

Help CenterMATLAB Answers 中查找有关 Loops and Conditional Statements 的更多信息

一般信息

MATLAB 版本兼容性

  • 兼容任何版本

平台兼容性

  • Windows
  • macOS
  • Linux
版本 已发布 发行说明 Action
1.2.0.0

*
Corrected bug which would not allow for transposing matricies when rowDim and colDim were swapped. This version was also regression tested.
Corrected routine to increase stability when dealing with higher dimensionality.

1.1.0.0

Updated last step on re-assembling the N-D matrix to ensure singleton dimension was preserved when set to one.

1.0.0.0