classdef myclass
properties
prop
end
methods
function obj=myclass(p)
p=struct('field1',[],'field2',[]);
obj.prop=p;
end
function r = plus(p,q)
r.prop = p;
r.prop = q;
obj1 = myclass(struct('field1',[],'field2',[]));
obj2 = myclass(struct('field1',[],'field2',[]));
r = myclass(add(obj1.prop, obj2.prop));
end
end
end
这是我的代码。我的结构数组由字段组成:字段1和字段1。域2。我的班级有一个属性:道具。我已经创建了使用struct的函数,我想在类方法下使用这些函数。我如何在课堂上定义我将在全班使用struct?
由于
答案 0 :(得分:0)
在我看来,您正在尝试使用构造函数初始化prop
结构。然后,您使用plus
方法将新结构作为数组项添加到prop
。如果这是你想要做的,你可以这样做:
classdef myClass < handle
properties
prop
end
methods
function obj = myClass(p)
obj.prop = p;
end
function addItem(obj, q)
obj.prop = [obj.prop, q];
end
end
end
你可以这样使用:
p = struct('field1',[],'field2',[]);
x = myClass(p);
x.addItem(p);
然后x.prop
将是:
1x2 struct array with fields:
field1
field2
此类不强制输入值为结构。如果输入值不是所需的格式,您可以进行一些检查并抛出错误。
答案 1 :(得分:0)
您可以在属性定义块中定义属性的类型。
classdef myclass
properties
prop = struct
end
end
如果您尝试将另一种类型写入道具,例如在构造函数中使用obj.prop = 2
的double值,会出现错误。