您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从python +通过args运行MATLAB脚本

从python +通过args运行MATLAB脚本

虽然我对python-matlab- bridge,Nipype或PyMAT不太熟悉,但是我已经对mlabwrap做了大量的工作,并且我将尽力回答关于该软件包的问题。

首先,如果您使用功能而不是脚本来工作,将会容易得多。让我们将Matlab脚本重播为一个函数myFunction.m如下所示:

function myFunction(v_input, directory, file_name)

    vid = videoinput(v_input);
    img = getsnapshot(vid);
    location = [directory file_name]
    imwrite(img, location,'png');

然后,您可以使用mlabwrap.mlab,从python调用函数,为函数参数传入字符串。所有Matlab函数包括用户定义的函数)都可以作为属性mlabwrap.mlab模块中获得。

>>> from mlabwrap import mlab
>>> mlab.myFunction('testadaptor', './', 'image.png')

mlabwrap会将您的字符串转换为Matlab可读的格式,并将其作为参数传递给您的函数。如果AttributeError引发,通常意味着您的函数不在Matlab路径上。您可以使用以下命令添加它:

>>> mlab.path(mlab.path(), 'C:\function\directory')

提醒您,mlabwrap会自动在Python和Matlab之间来回转换某些参数类型,例如字符串或numpy数组。但是,有许多类型无法转换,例如Matlab结构和类。在这种情况下,它将MLabObjectProxy从Matlab函数返回an 。这些代理对象无法在Python中操作或转换为Python类型,但可以通过mlabwrap成功传递到其他Matlab函数中。通常,对于具有复杂输出函数,最好将该输出写入Matlab函数中的文件,并在Python端从该文件导入数据。祝好运!

python 2022/1/1 18:45:57 有317人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶