运行通过Matlab用python编写的子字符串实现会抛出typeError

时间:2019-03-20 18:37:30

标签: python matlab typeerror

我想学习如何在matlab中使用python模块。因此,我编写了一个简单的子字符串实现:

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是有效的字符串。我还用int8()包裹了40个,但没有帮助。

我将不胜感激。

@Edit:我认为值得一提的是,使用python调用该函数可以正常工作。

0 个答案:

没有答案