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

2 Ansichten (letzte 30 Tage)
I have tried to use eig but doesn't work for 3D arrays. Any help will be greatly appreciated

Antworten (2)

Roger Stafford
Roger Stafford am 20 Feb. 2018
Bearbeitet: Roger Stafford am 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 Kommentare
Roger Stafford
Roger Stafford am 20 Feb. 2018
Bearbeitet: Roger Stafford am 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".

Melden Sie sich an, um zu kommentieren.


Andrei Bobrov
Andrei Bobrov am 20 Feb. 2018
Bearbeitet: Andrei Bobrov am 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);

Kategorien

Mehr zu Particle & Nuclear Physics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by