Pass multi dimensional byte array from C# to Matlab library using MWArray.
Show older comments
I have a C# array
byte[,,] r = new byte[2, 3, 4];
I have a matlab function which takes in a 3D byte array.
How do I use MWArray to transfer the data?
Answers (1)
Aditya
on 22 Feb 2024
0 votes
Hi Hans,
I understand that you have a 3D byte array in C# that you need to pass to a MATLAB function, which expects a 3D byte array as input, using the “MWArray” interface provided by the MATLAB Compiler SDK.
To achieve this, you can follow these points:
- Create your 3D byte array in C#.
- Convert the C# byte array to an “MWNumericArray”, which is a specialized type of “MWArray” designed for numeric data.
- Invoke the MATLAB function with the “MWNumericArray” as an argument.
- The function's return value will be stored in an “MWArray” object, which you can then use in your C# application.
“MWArray” is the base class for different array types in MATLAB, and “MWNumericArray” is a derived class that specifically handles numeric data, making it suitable for transferring numeric arrays like your byte array.
For further guidance on data conversion and handling different data types when interfacing between .NET and MATLAB, you can utilize the below MATLAB resources:
- https://in.mathworks.com/help/compiler_sdk/dotnet/data-conversion-between-net-and-matlab.html
- https://in.mathworks.com/help/compiler_sdk/dotnet/rules-for-data-conversion-between-net-and-matlab.html
These resources provide valuable information on how to effectively manage data conversion, ensuring accurate communication between your C# application and MATLAB functions.
Hope this helps!
Categories
Find more on Deploy to C++ Applications Using mwArray API (C++03) in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!