Я пытаюсь смешать фортран с октавой для некоторых своих работ.
Я создал матрицу в fortran и записал ее в файл данных с помощью следующей команды.
do i=1,n
write(1,*) (/(a(i,j),j=1,n)/)
end do
Затем Я загружаю эту матрицу в октаву с помощью dlmread и диагонализирую матрицу с помощью eigs. Затем снова массив, содержащий собственные значения, сохраняется в файле в октаве.
После этого я загружаю файл в fortran и читаю этот массив.
Недостаток этого метода в том, что он требует огромное время для записи матрицы и чтения, а также для матрицы размером 10k * 10k требуется 2 ГБ. Есть ли другой способ вызвать подпрограммы октавы, такие как eigs в fortran, чтобы сделать это быстрее?