Integrating Matlab Coder with c#
45 views (last 30 days)
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();
- Is it possible to do?
- If no, is there any alternatives?
- If yes, where can I find more examples?
Ryan Livingston on 24 Mar 2020
Edited: Ryan Livingston on 25 Mar 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.
More Answers (1)
Bill Chou on 23 Mar 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: