我想学习如何在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调用该函数可以正常工作。