我正在使用这样的课程:
class Select(object):
def __init__(self, interface):
...
def project(self, ID):
...
def __call__(self, datatype_or_path):
...
当我尝试从Matlab调用这个方法(基本上是一个仿函数)时:
select = Select(blah);
select('blah');
我收到以下错误:
Array formation and parentheses-style indexing with objects of class
'py.pyxnat.core.select.Select' is not allowed. Use objects of class
'py.pyxnat.core.select.Select' only as scalars or use a cell array.
编辑:
select.('__call__')('blah')
似乎无法正常工作
答案 0 :(得分:1)
来自Matlab技术支持:
我的名字是sai,我正在写你的技术支持 案例#01708094关于'通过matlab调用python仿函数'。
我了解您在调用仿函数时遇到问题 在MATLAB中用python定义。
我看到你正在使用MATLAB R2014b。请注意这是一个 MATLAB R2014b中的已知问题已在MATLAB R2015a和MATLAB中修复 在R2014b中没有已知的解决此问题的工作。如果是 可行,我建议升级到MATLAB R2015a 帮助您解决此问题。
答案 1 :(得分:0)
显然,您在代码中使用的Select
类是py.pyxnat.core.select.Select
,而不是您自己的Select
类。检查您的导入(并专门检查“星标导入” - from xxx import *
- 在您导入自己的Select
课程的行之后。