frontal
These routines assist in the manipulation of matrices with same shape but different content. For example, performing the product A*b is trivial for matrix A and vector b, but what would you do if you had several such products to form? Examples abound: rotations, Jacobians, covariances, etc. Using the frontal routines, you'd collect them all in a three-dimensional matrix or third-order tensor, with each k-th frontal panel of A(:,:,k) and b(:,:,k) storing one such a related matrix and vector. Then calling
C = frontal_mtimes(A, b);
would do the equivalent of
for k=1:size(A,3), C(:,:,k) = A(:,:,k) * b(:,:,k); end
but using internally different algorithms depending on the dimensions of A (including a C-mex option). If you like operator overloading, you can do instead:
A = frontal(A);
b = frontal(b);
C = A*b;
You might want to compile the file frontal_mtimes_helper.c, but it's not required.
After you've unzipped it, test your installation running:
addpath(genpath('c:\work\fx\frontal\'))
test_frontal
(don't do addpath(genpath('c:\work\fx\frontal\frontal\')))
引用格式
Felipe G. Nievinski (2024). frontal (https://www.mathworks.com/matlabcentral/fileexchange/30764-frontal), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
致谢
参考作品: Multiple matrix multiplications, with array expansion enabled, MTIMESX - Fast Matrix Multiply with Multi-Dimensional Support, testit
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!