Integrating Matlab Coder with c#

15 visualizaciones (últimos 30 días)
Guilherme
Guilherme el 11 de Oct. de 2013
Editada: Ryan Livingston el 25 de Mzo. de 2020
Hi,
I want to integrate Matlab Coder output with a C# project in Visual Studio. My main idea is:
  • Create a *.m script in Matlab
  • Make sure the script is compatible with Matlab Coder.
  • Generate a C++ shared library (DLL) with Matlab Coder
  • Integrate with C# using something like this:
//Starts the model execution. May take several minutes
public static class DllHelper
{
[DllImport(@"test.dll",CallingConvention=CallingConvention.Cdecl,EntryPoint = "Run()")]
public static extern int Run();
}
  • Also, I would like to be able to stop the execution and retrieve some partial results. To do this, I was thinking in two methods: StopExecution and RetrievePartialResults
[DllImport(@"test.dll",CallingConvention=CallingConvention.Cdecl,EntryPoint = "StopExecution ()")]
public static extern int StopExecution ();
[DllImport(@"test.dll",CallingConvention=CallingConvention.Cdecl,EntryPoint = "RetrievePartialResults()")]
public static extern MyResults RetrievePartialResults();
  1. Is it possible to do?
  2. If no, is there any alternatives?
  3. If yes, where can I find more examples?

Respuesta aceptada

Ryan Livingston
Ryan Livingston el 24 de Mzo. de 2020
Editada: Ryan Livingston el 25 de Mzo. de 2020
In addition to Bill's answer, generating the interface binding the generated C code to C# with something like SWIG is also an option. Here's an example:
As for starting and stopping the application, there isn't a built-in way for Coder to make a program interruptible. You'll need to design your MATLAB code to support such a behavior by possibly adding StopExecution and RetrievePartialResults entry-point functions which do the right thing when run in your deployed environment.

Más respuestas (1)

Bill Chou
Bill Chou el 23 de Mzo. de 2020
Yes, it's possible to use MATLAB Coder to integrate with C# applications. One would need to make some manually changes at the interface. Please see this article for more details:

Categorías

Más información sobre MATLAB Coder en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by