TPROD -- arbitary tensor products between n-d arrays
tprod
Matlab library for simple tensor operations using Einstein summation convention semantics
This function computes a generalized multi-dimensional matrix product based upon the einstein summation convention (plus extras). This means given 2 n-d inputs:
X = [ A x B x C x E .... ] Y = [ D x F x G x H .... ]
we define the result, Z, to be (in ESC) Z_{c,e,d,f} = X_{a,b,c,e} Y_{d,f,a,b}
(N.B. This syntax can be used directly with the etprod wrapper script).
This translates into tprod syntax as: Z = tprod(X,[-1 -2 1 2],Y,[3 4 -1 -2])
N.B. if Y==[], then it is assumed to be a copy of X.
This result is produced by forming an inner-product (multiply+sum) for the pairs of dimensions which have the same (negative) label (i.e. -1 => X dim 1 and Y dim 3, and -2 => X dim 2 and Y dim 4) and forming an outer product for all the remaining dimensions, with the positive label determining where this dimension is placed in the output.
Download from Mathworks File-Exchange
Citar como
Jason Farquhar (2024). TPROD -- arbitary tensor products between n-d arrays (https://github.com/jadref/tprod/releases/tag/v1.4.1.0), GitHub. Recuperado .
Compatibilidad con la versión de MATLAB
Compatibilidad con las plataformas
Windows macOS LinuxCategorías
- Image Processing and Computer Vision > Computer Vision Toolbox > Recognition, Object Detection, and Semantic Segmentation > Image Category Classification >
Etiquetas
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Descubra Live Editor
Cree scripts con código, salida y texto formateado en un documento ejecutable.
Versión | Publicado | Notas de la versión | |
---|---|---|---|
1.4.1.0 | See release notes for this release on GitHub: https://github.com/jadref/tprod/releases/tag/v1.4.1.0 |
||
1.4.0.0 | Updated the examples in tprod.m to show the equlivalent matlab code, and to include more complex examples |
||
1.3.0.0 | (Another) fix to make it compile with pedantic c-compilers, e.g. lcc. |
||
1.2.0.0 | Updated to work with very restrictive C dialects (such as LCC's) -- particularly when used on windows. |
||
1.1.0.0 | Bug fixes -- 1) problem with certain unusual calling orders.
|
||
1.0.0.0 | A couple of bug-fixes to prevent memory management errors |