这个例子展示了如何从下面的Python调用方法®单元本模块由文档中的示例使用。该示例说明了如何在MATLAB中创建模块®.如果您创建mymod.py
在Python编辑器中,请确保模块位于Python搜索路径上。这个示例还解释了如果您不是一个有经验的Python用户,如何获取调用该函数的帮助。
将当前文件夹更改为可写文件夹。
在MATLAB编辑器中打开一个新文件。
复制这些命令并将文件保存为mymod.py
.
Python模块演示了将MATLAB类型传递给Python函数""" def search(words): """返回包含'son'的单词列表""" " newlist = [w for w in words if 'son' in w]返回newlist def theend(words): """将'The End'附加到单词列表"""单词。append('The End')返回单词
从MATLAB命令提示符中,将当前文件夹添加到Python搜索路径。
如果计数(py.sys.path,'') == 0 insert(py.sys.path,int32(0),'');结束
要了解如何调用函数,请阅读搜索
功能mymod.py
源文件。该函数有一个输入参数,单词
.
def搜索(文字):
的函数帮助mymod.py
源文件。根据Python网站文档,帮助是“作为模块、函数、类或方法定义中的第一条语句出现的字符串文字”搜索
是:
返回包含“son”的单词列表“”“”
函数返回一个列表。
在MATLAB中创建一个输入参数,一个名称列表。
N=py.list({“琼斯”,“约翰逊”,“詹姆斯”})
N =没有属性的Python列表。约翰逊琼斯[' ',' ','詹姆斯)
调用搜索
作用类型py。
在模块名和函数名的前面。
名称= py.mymod.search (N)
names =没有属性的Python列表。(“约翰逊”)
函数返回py.list
价值。
原始的输入N
是不变的。
N
N =没有属性的Python列表。约翰逊琼斯[' ',' ','詹姆斯)
这个例子展示了如何在运行Python解释器的进程中重新加载修改过的Python模块。至于替代方案,请看重新加载进程外的Python解释器.
当您使用这个工作流时,MATLAB会删除工作空间中的所有变量、脚本和类。有关更多信息,请参见清楚的
类
函数。
重新加载模块的Python调用语法取决于你的Python版本。要验证您的Python版本,请使用MATLABpyenv
函数。
创造Python模块
将当前文件夹更改为可写文件夹。在MATLAB编辑器中打开一个新文件。
复制定义a的语句myfunc
函数并将文件保存为mymod.py
.
/ /显示消息""返回'版本1'
调用myfunc
.
py.mymod.myfunc
ans =不带属性的Python str。版本1
修改模块
修改函数,替换返回
声明如下:
返回“版本2”
保存文件。
卸载模块
清楚的类
MATLAB删除工作空间中的所有变量、脚本和类。
导入修改的模块
mod = py.importlib.import_module (“mymod”);
在中重新加载模块Python版本2.7
py.reload (mod);
在中重新加载模块Python版本3. x
py.importlib.reload (mod);
在更新的模块中调用函数
调用更新myfunc
函数。
py.mymod.myfunc
ans =不带属性的Python str。版本2