在Matlab中,我有两个类
classdef A < matlab.mixin.Heterogeneous
properties
a;
end
methods
function obj = A(varargin)
obj.a = 3;
end
end
end和
classdef B < A
properties
b;
end
methods
function obj = B(varargin)
obj = obj@A(varargin);
obj.b = 4;
end
end
end我现在尝试初始化一个长度为2的B类型的数组
>> objarray(2) = B
objarray =
1x2 heterogeneous A (A, B)
Properties:
a
Methods, Superclasses为什么Matlab坚持让它成为A类?我如何才能坚持它是B类呢?
编辑:使用调试器,很明显,在创建objarray(1)时,Matlab从不进入B的构造函数。
发布于 2013-09-04 23:28:01
我自己从来没有尝试过,但我相信matlab.mixin.Heterogeneous有一个方法getDefaultScalarElement,您可以自己实现/覆盖它,它将定义在您分配以后的元素时如何回填数组的初始元素。有关更多信息,请参阅关于中途关闭this文档页面。
https://stackoverflow.com/questions/18616450
复制相似问题