Как мне собрать октаву 3.8.2?

Я пытаюсь использовать oct2py для запуска кода Matlab, потому что у меня нет Matlab. Я загрузил октаву 3.8.2 из репозитория github, но readme не сильно помогает.

Код загружает набор данных и передает его в функцию octave/matlab, но затем я получаю эту ошибку:

Traceback (most recent call last):
  File "psycheeg.py", line 23, in <module>
    out = octave.EEGClustering(sigbufs, 1, 44100, 7, 1)
  File "/home/iman/anaconda3/lib/python3.6/site-packages/oct2py/dynamic.py", line 96, in __call__
    return self._ref().feval(self.name, *inputs, **kwargs)
  File "/home/iman/anaconda3/lib/python3.6/site-packages/oct2py/core.py", line 369, in feval
    store_as=store_as, plot_dir=plot_dir)
  File "/home/iman/anaconda3/lib/python3.6/site-packages/oct2py/core.py", line 568, in _feval
    raise Oct2PyError(msg)
oct2py.utils.Oct2PyError: Octave evaluation error:
error: 'rng' undefined near line 5 column 1

Я читаю что-то в Интернете, и кажется, что это может сработать, если я использую старую версию октавы.

Код Python:

import pyedflib
import sklearn
import matplotlib.pyplot as plt
import numpy as np

try:
    print('no matlab')
    import matlab.engine
    eng = matlab.engine.start_matlab()
except:
    from oct2py import octave
    import pprint
    #octave.addpath('/spectralcluster')

f = pyedflib.EdfReader("134_aliengonogo_parent.bdf")

n = f.signals_in_file

signal_labels = f.getSignalLabels()

sigbufs = np.zeros((n, f.getNSamples()[0]))


for i in np.arange(n):

    sigbufs[i, :] = f.readSignal(i)

print(sigbufs.shape)

out = octave.EEGClustering(sigbufs, 1, 44100, 7, 1)

pprint.pprint(out)

Код Matlab работает отлично.

0 ответов

Другие вопросы по тегам