【发布时间】:2015-02-19 20:01:39
【问题描述】:
考虑以下 Matlab 类的定义:
classdef myClass < handle
properties
cnn
factor
end
methods
function obj = myClass()
if nargin>0
obj.cnn = CNN();
obj.factor = Factor();
featureHandle = @obj.cnn.getFeature;
factor.setCNN(featureHandle);
end
end
end
end
cnn 和 factor 是另外两个类 CNN 和 Factor 的实例。 CNN 类有一个函数 getFeature,Factor 类有一个函数 setCNN。
我的目标是让 factor 使用 CNN 类的 getFeature 方法,例如,
c = myClass;
c.factor.cnnHandle(input);
但是上面的代码不起作用,因为Matlab好像在Factor类中寻找属性cnn,可能是因为句柄使用obj来引用当前类:
Undefined function 'obj.cnn.getFeature' for input arguments of type 'double'.
【问题讨论】:
-
this thread 的可能重复项,但您的代码中可能存在错误。请发布完整代码和错误消息。
-
分两步试试。 localcnn = obj.cnn; featureHandle = @localcnn.getFeature;
-
@Crazy Rat:我知道这篇文章和建议的解决方案是正确的。但是,它没有处理在另一个对象类中使用句柄的情况,这可能是我的问题的原因。不幸的是,由于 IP 问题,我不能发布完整的代码,但我已经用错误消息更新了帖子。
标签: matlab