我知道可以生成描述枚举的 classdef .m 文件,但是这将导致生成一堆文件并且会非常混乱。我正在寻找的是一种在不生成任何文件的情况下“在内存中”执行此操作的方法。我知道我可以使用 mexCallMatlab 或 mexEval 函数在 Matlab 中创建简单变量,但 classdef 似乎不适用于这些函数。
问问题
533 次
1 回答
2
我认为这containers.Map
可能是您最好的选择,即使它远没有基本枚举那么优雅。文档中的一个例子:
keySet = {'Jan', 'Feb', 'Mar', 'Apr'};
valueSet = [327.2, 368.2, 197.6, 178.4];
mapObj = containers.Map(keySet,valueSet)
您甚至可以将对象传递到您的 mex 代码中,而不是使用mexCallMatlab
or mexEval
-see mxGetProperty
and mxIsClass
,例如,除其他外。我已经成功地为RandStream
对象做到了这一点。
于 2013-07-18T00:48:37.023 回答