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)
Afficher commentaires plus anciens
I have tried to use eig but doesn't work for 3D arrays. Any help will be greatly appreciated
0 commentaires
Réponses (2)
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
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
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);
0 commentaires
Voir également
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!