MATLAB: If I have an array of 4 dimensions say A=complex(​rand(2,2,2​,2),rand(2​,2,2,2)). If I need to calculate the inverse of this matrix, as defined beow , how should I do it

matrix inversion

I need to compute B(x,y,z,w) such that if I multiply the terms of A and B , I should get an identity matrix I(a,b,c,d):
I=zeros(a,b,c,d);
for a=1:2
for b=1:2
for c=1:2
for d=1:2
for i=1:2
for j=1:2
I(a,b,c,d)=A(a,b,i,j)*B(i,j,c,d)+I(a,b,c,d);
end
end
end
end
end
end
The I(a,b,c,d)= 1 only when a=b=c=d

Best Answer

[a,b,c,d]=ndgrid(1:2);
I=reshape(a==b & b==c & c==d, 4,4);
A=reshape(A,4,4);
B=reshape( A\I , 2,2,2,2);