我知道可以生成描述枚举的classdef .m文件,但这会导致生成一堆文件并且会非常混乱。 我正在寻找的是一种在内存中执行此操作而不生成任何文件的方法。我知道我可以使用mexCallMatlab或mexEval函数在Matlab中创建简单变量,但classdef似乎不适用于这些函数。
答案 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代码中,而不是使用mexCallMatlab
或mexEval
- 例如mxGetProperty
和mxIsClass
,例如others 。我已成功完成RandStream
个对象。