Я хотел узнать, как использовать модули 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