File Exchange

image thumbnail

Inversion every 2D slice for arbitrary Multi-dimension array.

version 1.0.0.0 (2.37 KB) by Xiaodong
Inverse every 2D slice for an arbitrary N-D array (M).

9 Downloads

Updated 27 Apr 2011

View License

Inverse every 2D matrix slice (the first two dimensions) for multi-dimensional array M:
M(:,:,p,q,...) * X(:,:,p,q,...) = repmat(eye(m),[1,1,p,q,...]),
where input M is a N-D array (m x m x [p x q x ...]), for all possible m=1,2,3,...
and optional higher dimensions. Output X array has the same size as M.

Comments and Ratings (9)

Pi Ting

Great!

Antonio Mei

Terrific work and thanks for sharing! Do you have a similar function for determinants of nxnxp matrices?

Xiaodong

Hi llan, can you comment on the error message for what was not working? This program is optimized for this specific task in terms of performance and memory consumption. It may have a warning which can be ignored if you use integers for all array elements, but I don't find any other issues so far. For example, to produce the warning:

>> A=ones(3,3,20,200);
>> B=multinv(A);
Warning: Matrix is singular to working precision.
> In multinv (line 73)

Ilan

Does not work on matlab 2015b

Yuan Zhou

Sean

Rajab Legnain

Hi Sir

It is early a great function.
Thanks for sharing.
Regards

This program works GREAT! It greatly improved the speed of my codes that require inversion of matrices of functions. I use it with mtimesx. Thanks for your effort on this code, Xiaodong.

Thank you for your comment on http://www.mathworks.com/matlabcentral/fileexchange/8773-multiple-matrix-multiplications-with-array-expansion-enabled

Your function is quite useful as it is. However, to be compatible with MULTIPROD, and to meet the requirements to be an ARRAYLAB function, it should work with any block array of square matrices, not only with those containing square matrices along their first two dimensions. Thus, it should have a syntax similar to MULTITRANSP (provided together with MULTIPROD).

My best regards.

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux