Creating MATLAB data structures in C# library to use in MATLAB
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Constantin
el 14 de Oct. de 2021
Comentada: Constantin
el 20 de Oct. de 2021
I am trying to interface a C# library to MATLAB. Using standard properties and methods works fine, however the performance is slow. I figured I'd try to use MWArray.dll to create MATLAB data structures directly in C# with an interface DLL which will be called by MATLAB.
However, whenever I call a method that uses MWArray, I get a type initializer error:
The type initializer for 'MathWorks.MATLAB.NET.Arrays.MWArray' threw an exception.
My C# class looks like this:
using MathWorks.MATLAB.NET.Arrays;
namespace Dummy.MatlabInterop
{
public class Example
{
public MWStructArray getStruct()
{
return new MWStructArray(new int[] { 1, 1 }, new string[] { "Dummy" });
}
}
}
This is called by MATLAB like this:
NET.addAssembly(fullfile(pwd, 'Dummy.MatlabInterop.dll'));
ex = Dummy.MatlabInterop.Example();
s = ex.getStruct(); % <- This throws 'The type initializer for 'MathWorks.MATLAB.NET.Arrays.MWArray' threw an exception.'
The dll is created for 64bit. I cannot find much documentation on this. Is this approach valid? What am I doing wrong? Any advice would be much appreciated.
0 comentarios
Respuesta aceptada
Kojiro Saito
el 20 de Oct. de 2021
MathWorks.MATLAB.NET.Arrays is a part of MATLAB Compiler SDK and is different from MATLAB's external interface for .NET.
[MATLAB Compiler SDK] Integrate a .NET Assembly Into a C# Application
As NET.addAssembly document says, "NET.addAssembly does not support assemblies generated by the MATLAB Compiler SDK™ product.", so we cannot call the .NET libraries which use MathWorks.MATLAB.NET.Arrays.
Más respuestas (0)
Ver también
Categorías
Más información sobre Deploy to .NET Applications Using MWArray API en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!