How to pass python "byte" param to python interface called from matlab ?
古いコメントを表示
- python call interface from c++ dll
- the input data type of interface is unsigned char*
- python use bytes object(b'\x10') to pass param to dll interface
- how matlab?
回答 (1 件)
Rushikesh
2024 年 9 月 18 日
I understand that you wish to call an interface from a C++ DLL in MATLAB, which requires an unsigned char* as input data. As you mentioned, in Python, we can use the bytes data type, which is compatible with the unsigned char* data type in C++. You can achieve similar functionality in MATLAB using two approaches:
- C++ uses unsigned char* for binary data, and Python uses the bytes data type for binary data, which is compatible with unsigned char* in C++. In MATLAB, you can handle binary data using uint8 arrays. This array can then be converted to a Python bytes object
- Another approach is to create a Python bytes data object directly in MATLAB. This is possible because MATLAB allows the use of Python code with the 'py.' prefix.
Please refer to the example below for guidance:
/* MATLAB array equivalent to b'\x10' in Python */
data = uint8([16]);
pyData = py.bytes(data);
/* Another way, create bytes data in MATLAB Python. */
pyBytes = py.bytes([16]);
You can try to send MATLAB uint8 array directly to C++ DLL interface but this method is more complex and requires handling data conversion and memory management carefully.
Let me know if this helps.
カテゴリ
ヘルプ センター および File Exchange で Call Python from MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!