Since it is not a standard concept, you will first have to tell us what
does "inverse" mean for a hypermatrix.
--
G. A. Edgar http://www.math.ohio-state.edu/~edgar/
You probably also want to define "multiplication" of two
"hypermatrices" and the unit hypermatrix.
I suppose i would consider the inverse of the hypermatrix to be the
matrix that will give the identity matrix when multiplied.
A*A^-1 = I
where the identity matrix would be Cijk = 1 if i=j=k else Cijk = 0.
I should also mention, that i am an engineer.
So while i am aware that there are several crieta that must be
satisfied in order for a matrix to be deemed an inverse of another
matrix, I am more concerned as to how one would go about doing this so
that i may use it in a possible application. I have looked around on
the net, and there is very little information in relation to this
topic.
The main reason i want to know about this is...
I would like to incorporate the coskewness into the mahalanobis
distance metric, to see if i can improve the distinction accuracy of
this distance metric.
The mahalanobis distance is defined as
D^2 = (X-u)*C^-1*(X-u)'
where
X is the vector we are testing for similarity
u is the mean vector of the training data
C is the covaraince matrix of the training data
so if we were to extend this concept to incorporate higher order
moments
we might define the coskewness matrix as
Sijk = sum((Xi-ui)(Yj-vj)(Zk-wk))
In matlab the code would look like this
function s = coskewness(x,varargin)
%
xc = bsxfun(@minus,x,mean(x)); % Remove mean from data
[n,m] = size(x); % Number of rows & columns in input
data. So each row is a different vector
s = zeros(3,3,3); % Predefine loop variable
%%
for k = 1:m
for j = 1:m
for i = 1:m
s(i,j,k) = (sum(xc(:,i).*xc(:,j).*xc(:,k))/n); %
Coskewness hypermatrix
end
end
end
end
In matlab we would find the mean, covariance and coskewness of some
data
X = rand(100,3)
mX = mean(X); % mX is a 1 by 3 matrix, mean
cX = cov(X); % cX is a 3 by 3 matrix, covariance
sX = coskewness(X); % sX is a 3 by 3 by 3 matrix, coskewness
we could incoporate the coskewness matrix into the mahalanobis
distance possibly by multipling three of the hypermatrix sides by the
(X-mX) vector.
(X-mX)* sX^-1 *(X-mX)' *(X-mX)^'
> On Nov 12, 1:31�pm, "G. A. Edgar" <ed...@math.ohio-state.edu.invalid>
> wrote:
> > In article
> > <9da09028-fa46-4692-bd89-46621dfe6...@m26g2000yqb.googlegroups.com>,
> >
> > Bradster <piercebr...@gmail.com> wrote:
> > > Hi,
> > > How can one calculate the inverse of a hyper matrix? if possible
> > > 3x3x3 or 50x50x50 etc
> > > the matrix i have is symeterical in the sense that Aijk = Ajki = Akij.
> >
> > Since it is not a standard concept, you will first have to tell us what
> > does "inverse" mean for a hypermatrix.
> >
>
> I suppose i would consider the inverse of the hypermatrix to be the
> matrix that will give the identity matrix when multiplied.
> A*A^-1 = I
> where the identity matrix would be Cijk = 1 if i=j=k else Cijk = 0.
But of course to use this definition, one must first define
multiplication of hypermatrices.
In article
<6a51464b-8b90-4841...@z41g2000yqz.googlegroups.com>,
Bradster <pierc...@gmail.com> wrote:
> I have looked around on
> the net, and there is very little information in relation to this
> topic.
>
... presumably because no use for it has yet been found.
Yep, multiplication of the hypermatrices does not seem to be defined,
I was hoping that it would be a realitivily straight forward task to
accomplish,
but it seems this is not the case.
I doubt i'll go any further on this topic as it is outside my field of
expertise.
Now that i think about it, i am actually interested in the division of
a vector by a hypermatrix.
So is it possible to divide by a matrix instead of multiplying by the
inverse?