Using Matlab Generated Enumerators of External C Library

조회 수: 3 (최근 30일)
Alon Meirson
Alon Meirson 2016년 5월 3일
댓글: Alon Meirson 2016년 5월 3일
Matlab generates String representations for enumerator types when loading an external library using loadlibrary. It is then possible to pass enumerators as string or values when calling library functions with calllib. When enumerator values are returned, Matlab will return the string representation. The question is:
Are there Matlab functions to convert between enumerator value its string representation (and vice-versa) by the user?
Note: enum2val is not relevant since it works on Matlab Class Enumerators and not on those Auto-Generated from the external library h files.
Unless...it is: I would guess Matlab utilizes existing functionality and maybe it Auto-Generates Matlab Classes for the enumerators of external libraries. In this case the 'type' value used in enum2val would have to be built from combination of library name and enumerator name.
Thanks ! Alon

답변 (1개)

Philip Borghesani
Philip Borghesani 2016년 5월 3일
There is no straight forward way of doing this other then to write your own converter in C.
typedef enum Enum1 {en1=1,en2,en4=4} TEnum1;
Enum1 enumStr(Enum1 val) { return val; } // returns string in MATLAB
int32 enumInt(Enum1 val) { return (int32)val; } // returns numeric value in MATLAB
  댓글 수: 1
Alon Meirson
Alon Meirson 2016년 5월 3일
Thanks Philip. I have considered this idea myself. Was hoping Matlab has a better option as they had to implement it internally...

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Call C from MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by