在MATLAB中,从matlab.mixin.Heterogeneous继承基类将允许良好的多态性。但是,在Coder中似乎不支持这一点。首先,有人能确认Coder不能使用matlab.mixin.Heterogeneous吗?如果没有,有没有人有一个很好的解决方法?
例如,我通常有一个名为For的ABC设置,它是从句柄和matlab.mixin.Heterogeneous派生的。然后我有矩形和圆圈从形状派生出来。我希望能有这样的数组:
classdef Shape < handle & matlab.mixin.Heterogeneous
classdef Circle < Shape
classdef Rectangle < Shape
harray = [Rectangle(height, width), Circle(radius)];在Matlab中,harray变成了一种"1x2 heterogeneous Shape (Rectangle, Circle) array“。
在Coder中,我在构建过程中得到了错误"Base class 'matlab.mixin.Heterogeneous' cannot be loaded.“。
有什么办法吗?在我做疯狂的事情之前,我只想看看是否有明显的东西我错过了。
发布于 2015-08-28 11:53:42
代码生成不支持matlab.mixin.Heterogeneous是正确的。我向MATLAB团队报告了您使用它的愿望和不清楚的错误信息。
对象数组是用于生成代码的不支持 (参见链接中的项目3)。如果你尝试:
[Circle(1), Circle(1)]您将得到一个错误,说明这一事实:
???代码生成不支持对象数组。
如果没有这样的支持,matlab.mixin.Heterogeneous在代码生成方面可能不会有多大的实用价值。
https://stackoverflow.com/questions/32258388
复制相似问题