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

2 views (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.

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);


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!

Translated by