pass data from Matlab to python3 as bytes or bytearray
17 次查看(过去 30 天)
显示 更早的评论
Matlab has a really nice API for interacting with python. I see how to pass lists, and dicts, etc. But I can't figure out how to create a "bytes" or "bytearray" (python3) data variable in Matlab and pass that variable to a python method that expects a "bytes-like" type. I see that bytes in python passed to Matlab result in an array of uint8s, but the reverse does not appear to be true:
>> py.libscrc.usb16(uint8(8))
Python Error: TypeError: a bytes-like object is required, not 'int'
>> py.libscrc.usb16([uint8(8), uint8(9)])
Python Error: TypeError: argument 1 must be read-only bytes-like object, not array.array
Any hints?
Thanks.
1 个评论
Mohammad Sami
2020-1-29
编辑:Mohammad Sami
2020-1-29
When passing data to python, Matlab is converting your data into type py.int.
Conversion are shown here https://www.mathworks.com/help/releases/R2019b/matlab/matlab_external/passing-data-to-python.html
Perhaps you can explicitly define the type py.bytes or py.bytearray in Matlab ?
回答(0 个)
另请参阅
类别
在 Help Center 和 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!