1

我知道可以生成描述枚举的 classdef .m 文件,但是这将导致生成一堆文件并且会非常混乱。我正在寻找的是一种在不生成任何文件的情况下“在内存中”执行此操作的方法。我知道我可以使用 mexCallMatlab 或 mexEval 函数在 Matlab 中创建简单变量,但 classdef 似乎不适用于这些函数。

4

1 回答 1

2

我认为这containers.Map可能是您最好的选择,即使它远没有基本枚举那么优雅。文档中的一个例子:

keySet =   {'Jan', 'Feb', 'Mar', 'Apr'};
valueSet = [327.2, 368.2, 197.6, 178.4];
mapObj = containers.Map(keySet,valueSet)

您甚至可以将对象传递到您的 mex 代码中,而不是使用mexCallMatlabor mexEval-see mxGetPropertyand mxIsClass,例如,除其他外。我已经成功地为RandStream对象做到了这一点。

于 2013-07-18T00:48:37.023 回答