Запуск реализации подстроки, написанной на python через matlab throws typeError - PullRequest
0 голосов
/ 20 марта 2019

Я хотел узнать, как использовать модули Python в Matlab. Поэтому я написал тривиальную реализацию подстроки:

def substring(string, end, start=0):
    if int(start) != 0:
        return string[int(start):int(end)]
    else:
        return string[:int(end)]

Я поместил его в файл substring.py, который сохраняется в рабочем каталоге matlab.

Я добавил рабочую папку Matlab в путь поиска Python (следуя инструкциям здесь https://www.mathworks.com/help/matlab/matlab_external/call-user-defined-custom-module.html).

Затем я попытался вызвать мою функцию в Matlab:

x_label = py.substring.substring(fastaContent.id, int8(40));

Я запустил код Matlab и получил это в консоли:

Error using substring (line 3)
Python Error: TypeError: slice indices must be integers or None or have an __index__ method

fastaContent.id является допустимой строкой. Я также завернул 40 с int8(), но это не помогло.

Буду признателен за любую помощь.

@ Edit: я думаю, что стоит упомянуть, что функция прекрасно работает, вызывается с python

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