如何在 Matlab 中使用自己的 class 定义 属性?
How to make property definition using own class in Matlab?
在 Matlab 中我有包“+mypackage”。以下所有定义都在这个folder/package下。
MyClass.m
classdef MyClass
properties
prop1 MyProperty
end
methods (Static)
function obj = with_five()
obj = mypackage.MyClass(5);
end
end
methods
function obj = MyClass(num)
obj.prop1 = mypackage.MyProperty(num);
end
end
end
MyProperty.m
classdef MyProperty
properties
num double
end
methods
function obj = MyProperty(val)
obj.num = val;
end
end
end
所以在MyClass.m中我将prop1
属性定义为classMyProperty
的对象。
现在我想用这个脚本创建对象。
import mypackage.MyClass
class_test1 = MyClass(5);
class_test2 = MyClass.with_five();
当我 运行 它时,我得到以下错误:
Error using Testpackage (line 3)
Error defining property 'prop1' of class 'mypackage.MyClass':
Class named 'MyProperty' is undefined or does not support property validation.
当我从 MyClass.m 中删除 属性 定义时,它起作用了。
有没有办法在 Matlab 中将属性定义为自己的对象 class?
谢谢小狼的帮助!
我将 prop1
的定义更改为 mypackage.MyProperty
。
我的 Class 定义现在看起来像这样:
classdef MyClass
properties
prop1 mypackage.MyProperty
end
methods (Static)
function obj = with_five()
obj = mypackage.MyClass(5);
end
end
methods
function obj = MyClass(num)
obj.prop1 = mypackage.MyProperty(num);
end
end
end
必须指向我的包 mypackage
中的 MyProperty
。
否则 Matlab 无法找到它。
我在Matlab帮助中找到了它:
https://de.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html?s_tid=srchtitle#brfynt_-3
在 Matlab 中我有包“+mypackage”。以下所有定义都在这个folder/package下。
MyClass.m
classdef MyClass
properties
prop1 MyProperty
end
methods (Static)
function obj = with_five()
obj = mypackage.MyClass(5);
end
end
methods
function obj = MyClass(num)
obj.prop1 = mypackage.MyProperty(num);
end
end
end
MyProperty.m
classdef MyProperty
properties
num double
end
methods
function obj = MyProperty(val)
obj.num = val;
end
end
end
所以在MyClass.m中我将prop1
属性定义为classMyProperty
的对象。
现在我想用这个脚本创建对象。
import mypackage.MyClass
class_test1 = MyClass(5);
class_test2 = MyClass.with_five();
当我 运行 它时,我得到以下错误:
Error using Testpackage (line 3)
Error defining property 'prop1' of class 'mypackage.MyClass':
Class named 'MyProperty' is undefined or does not support property validation.
当我从 MyClass.m 中删除 属性 定义时,它起作用了。 有没有办法在 Matlab 中将属性定义为自己的对象 class?
谢谢小狼的帮助!
我将 prop1
的定义更改为 mypackage.MyProperty
。
我的 Class 定义现在看起来像这样:
classdef MyClass
properties
prop1 mypackage.MyProperty
end
methods (Static)
function obj = with_five()
obj = mypackage.MyClass(5);
end
end
methods
function obj = MyClass(num)
obj.prop1 = mypackage.MyProperty(num);
end
end
end
必须指向我的包 mypackage
中的 MyProperty
。
否则 Matlab 无法找到它。
我在Matlab帮助中找到了它:
https://de.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html?s_tid=srchtitle#brfynt_-3