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

1 vue (au cours des 30 derniers jours)
I have tried to use eig but doesn't work for 3D arrays. Any help will be greatly appreciated

Réponses (2)

Roger Stafford
Roger Stafford le 20 Fév 2018
Modifié(e) : Roger Stafford le 20 Fév 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 commentaires
Roger Stafford
Roger Stafford le 20 Fév 2018
Modifié(e) : Roger Stafford le 20 Fév 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".
Andrei Bobrov
Andrei Bobrov le 20 Fév 2018
@Spleffy: Please attach your csv - file or him small part.

Connectez-vous pour commenter.


Andrei Bobrov
Andrei Bobrov le 20 Fév 2018
Modifié(e) : Andrei Bobrov le 20 Fév 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);

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by