【发布时间】:2018-12-06 17:16:23
【问题描述】:
我想创建一个 Matlab 枚举类,其方法是根据每个枚举的对应数值从表中查找值。这是我得到的:
classdef testclass < uint8
enumeration
enum1 (1)
enum2 (2)
enum3 (3)
end
A = [100 200 300;101 202 303;111 222 333];
methods
function retval = getval(obj1,obj2)
retval = testclass.A(obj1,obj2);
end
end
end
到目前为止,我已经尝试过:
不从 uint8 继承属性,并将
properties块添加到具有矩阵 A 的类(我希望它是常量)和一个属性 B,我希望它是对应的数字到每个枚举。我收到一条错误消息,说第一个枚举(可能其他每个枚举也是)在其定义中有太多参数。上面的代码。我在包含 A 的行中收到一个错误,说这是一个意外的 MATLAB 表达式。
不从 uint8 继承属性并添加两个
properties块,因为如果我定义两个属性,我认为 Matlab 会期望每个枚举定义有两个参数。第一个properties块是常量,第二个在“属性”之后没有任何内容。这也不起作用。在
getval函数内定义矩阵A。这可行,但我希望 A 可用于类中的其他方法。
如何定义类中每个方法都可用的变量?
【问题讨论】:
-
您应该解释并举例说明用例:您希望如何调用类以及结果输出应该是什么。你解释了你尝试了什么,但没有解释你想要什么,目前还不是很清楚。
-
@Hoki 我希望能够定义两个变量,比如
a=testclass.enum1和b=testclass.enum3。然后我希望能够调用 getval 函数,该函数在索引 (a,b) 处查找 A 中的值,在这种情况下相当于 A(1,3)。该函数应返回 A(1,3) 处的值。