2013-07-18 1 views
1

열거 형을 설명하는 classdef .m 파일을 생성하는 것이 가능하지만 많은 파일이 생성되어 상당히 혼란 스럽습니다. 내가 찾고있는 것은 파일을 생성하지 않고 "메모리에서"이를 수행하는 방법입니다. mexCallMatlab 또는 mexEval 함수를 사용하여 Matlab에서 간단한 변수를 만들 수 있지만 classdef가 이러한 함수와 함께 작동하지 않는 것 같습니다.mex 함수에서 Matlab에서 Enum 형식을 만들 수있는 방법

+0

[containers.Map] (http://www.mathworks.com/help/matlab/ref/containers.mapclass.html)을 보았습니까? mex 코드를 정확히 전달해야합니까? – horchler

+0

[Java Collections] (http://undocumentedmatlab.com/blog/using-java-collections-in-matlab/)이 또 다른 가능성 일 수 있습니다. – horchler

+0

mex 코드는 외부 스키마를 기반으로 Enum 형식을 자동으로 생성해야합니다. mex 함수는 파일에서 데이터를 읽는 데 사용되며 현재는 열거 형 값을 문자열로 전달합니다. –

답변

2

내 생각 엔 containers.Map이 기본 열거 형만큼 우아하지는 않지만 최선의 선택이라고 생각합니다. 다큐먼트에서 예 :

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

당신은 오히려 others 사이에, 예를 들어 mexCallMatlab 또는 mexEval 이따 mxGetPropertymxIsClass를 사용하는 것보다 당신의 MEX 코드로 객체를 전달할 수 있습니다. RandStream 개체에 대해이 작업을 성공적으로 수행했습니다.

+0

내가 원한 것은 정확하게 할 수 없다는 말인가? 그리고 이것이 차선책인가? –

+0

먼저, 필요한 방식으로 작동하도록 열거 형을 만드는 사용자 정의 클래스를 얻을 수 없다는 사실을 말씀 드리고자합니다 .- 시도하지 않았습니다. 둘째,이 점에 대해 덜 우아하다는 점은이 솔루션이 단순한 enum으로 필요한 것보다 더 복잡한 클래스 (적어도 내장 된 클래스)를 사용해야한다는 사실과 관련이 있습니다. 결과 객체는 필요한 방식으로 작동해야합니다. – horchler

관련 문제