Собственные значения для матриц в цикле for - PullRequest
0 голосов
/ 02 сентября 2018

Мне нужно вычислить собственные значения ряда матриц, а затем сохранить их в отдельном файле. Мои данные имеют 5 столбцов и 10000 строк. Я использую следующие функции:

        R<-NULL

    A <- setwd("c:/location of the file on this computer")
    for(i in 0:1){
      X<-read.table(file="Example.prn", skip=i*5, nrow=5)
      M <- as.matrix(X)
      E=eigen(M, only.values = TRUE)
      R<-rbind(R,E)}
      print(E)
    }

В качестве примера я использовал набор данных с 10 строками и 5 столбцами. Это дает мне следующие результаты:

$`values`
[1]  1.350000e+02+0.000e+00i -4.000000e+00+0.000e+00i  4.365884e-15+2.395e-15i  4.365884e-15-2.395e-15i
[5]  8.643810e-16+0.000e+00i

$vectors
NULL

$`values`
[1]  2.362320e+02+0.000000e+00i -4.960046e+01+1.258757e+01i -4.960046e+01-1.258757e+01i  9.689475e-01+0.000000e+00i
[5]  1.104994e-14+0.000000e+00i

$vectors
NULL

У меня три вопроса, и я очень признателен за любую помощь:

  1. Я хочу сохранить результаты в последовательных строках, например:

    Eigenvalue(1) Eigenvalue(3) Eigenvalue(5) Eigenvalue(7) Eigenvalue(9)
    Eigenvalue(2) Eigenvalue(4) Eigenvalue(6) Eigenvalue(8) Eigenvalue(10)
    

    есть мысли?

  2. Кроме того, я не понимаю собственных значений в выводе. Они не числа. Например, один из них равен 2,362320e + 02 + 0,000000e + 00i. Мое первое, хотя было то, что это сумма пяти определителей для матрицы 5x5. Однако в «2.362320e + 02 + 0.000000e + 00i», кажется, есть только четыре числа. Какие-нибудь мысли? Разве функция eigen () не вычисляет конечные значения собственных значений?

  3. как сохранить результат в файле Excel? Я использовал следующие коды

Однако результат, который я получаю из текущих кодов:

> class(R)
[1] "matrix"
> print(R)
  values    vectors   
E Complex,5 NULL
E Complex,5 NULL

1 Ответ

0 голосов
/ 03 сентября 2018

Я думаю, вы можете легко получить значения с помощью следующего кода:

R<-NULL

A <- setwd("c:/location of the file on this computer")
for(i in 0:1){
  X<-read.table(file="Example.prn", skip=i*5, nrow=5)
  M <- as.matrix(X)
  E=eigen(M, only.values = TRUE)
  R<-rbind(R,E$values)}

}

и затем используйте ответ на этот вопрос , чтобы сохранить R в файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...