如何从mex函数在Matlab中创建枚举类型

时间:2013-07-18 00:29:23

标签: matlab mex

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

1 个答案:

答案 0 :(得分:2)

我认为containers.Map可能是你最好的选择,尽管它不如基本枚举那么优雅。来自doc的一个例子:

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

您甚至可以将对象传递到您的mex代码中,而不是使用mexCallMatlabmexEval - 例如mxGetPropertymxIsClass,例如others 。我已成功完成RandStream个对象。