【发布时间】:2013-07-04 12:27:52
【问题描述】:
使用图形句柄,您可以这样做:
>> a = nan(1,5)
a =
NaN NaN NaN NaN NaN
>> a(3) = line([1 2],[1 2])
a =
NaN NaN 0.0042 NaN NaN
>> find(~isnan(a),1,'first')
ans =
3
如果这是使用普通句柄派生类完成的,则会发生此错误:
>> a(3) = MyObject(1,1,1)
The following error occurred converting from MyObject to double:
Error using double
Conversion to double from MyObject is not possible.
据我所知,图形句柄只是双打。自定义对象也可以这样吗?
【问题讨论】:
-
这些帖子没有回答我要问的问题,这与能够找到(~isnan(x))有关
-
@BBrock:也许我发布的单元格数组示例可以提供帮助,您可以使用
~cellfun(@isempty, a)而不是 ISNAN 来测试非空单元格 -
@Amro:感谢您的建议——我知道我可以为此目的使用元胞数组,但是拥有与图形句柄提供的功能相同的功能对我来说特别方便...所以我现在有点猜测这是不可能的?
-
@BBrock:恐怕这是不可能的,你不能让你的类将对象作为数字句柄返回。您应该知道,句柄图形 (HG) 不是使用已记录的 MCOS 类系统实现的,而是使用较旧且完全未记录的 UDD 类:undocumentedmatlab.com/blog/introduction-to-udd
标签: arrays matlab oop object handle