Computational neuroscience - I have a 116x116x226 I need to calculate the eigenvalues for this array can anyone help me?

1 view (last 30 days)
I have tried to use eig but doesn't work for 3D arrays. Any help will be greatly appreciated

Answers (2)

Roger Stafford
Roger Stafford on 20 Feb 2018
Edited: Roger Stafford on 20 Feb 2018
A 3D array is not a matrix, and matrix multiplication is not defined for such arrays. Eigenvalues and eigenvectors are defined in terms of matrix multiplication, and therefore do not have a definition for 3D arrays.
You can, however, find eigenvalues and vectors for each of the 226 layers in your array since each one is a square matrix. That would make sense.
  3 Comments
Roger Stafford
Roger Stafford on 20 Feb 2018
Edited: Roger Stafford on 20 Feb 2018
Yes, each separate 116-by-116 layer of your array is a matrix, and in general will have 116 eigenvalues as well as the same number of eigenvectors, one for each eigenvalue. That will give you a total of 116*226 eigenvalues in general and 116*116*226 components of eigenvectors, but I don't know what you want to do with all of them.
I couldn't understand your "untitled.png" image, and I don't know what you mean by "these diagonal values on 226 pages".

Sign in to comment.


Andrei Bobrov
Andrei Bobrov on 20 Feb 2018
Edited: Andrei Bobrov on 20 Feb 2018
d = xlsread('path_to_your_file\NT example.xls');
[m,n] = size(d);
ii = rem(0:n-1,m)+1 ~= 1;
nn = 1:n;
n1 = nn(ii);
n2 = repmat(1:m,1,ceil(n/m));
n2 = n2(nn);
n2 = n2(1:end-1);
n2 = n2(n2 ~= m);
out = d(sub2ind([m,n],n2,n1));
second variant
[m,n] = size(d);
m2 = m*m;
out = d((m+1:m+1:m2)' + (0 : ceil(n/m)-1)*m2);

Categories

Find more on Linear Algebra in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!