Calling a MATLAB function from C#

后端 未结 3 580
南旧
南旧 2020-12-05 05:35

I developed a MATLAB function, and I\'m looking for a way to call that function from another C# application and pass some parameters to it and get the results in the C# prog

相关标签:
3条回答
  • 2020-12-05 06:10

    There is a third option: delegates. Starting MATLAB -> load .NET assembly -> execute .NET function with delegate handle to a MATLAB function.

    0 讨论(0)
  • 2020-12-05 06:18

    There is nice example in the MATLAB Central.

    It shows three ways on how to communicate with MATLAB:

    1. COM
    2. MATLAB .NET Bulider
    3. MATLAB compiler

    COM (I do not have any experience with it)

    Cons: MATLAB is required to be installed on the target computer.

    MATLAB .NET builder compiles your MATLAB code to the .NET assembly and you can use it directly.

    Pros: MATLAB is not required to be installed on the target computer

    Cons: It's expensive

    MATLAB compiler compiles your MATLAB code into a C/C++ library or EXE file. You can use it through P/Invoke.

    Pros: MATLAB is not required to be installed on the target computer

    Cons: It's expensive, a lot of P/Invoke.

    0 讨论(0)
  • 2020-12-05 06:24

    There is a great example on this site on setting up everything. You can use MATLAB .NET deployment tool.

    You need to

    • Install MCR (Matlab Compiler Runtime).
    • Deploy your Matlab function to .NET Assembly using Matlab Deploy Tool. This will create a .dll file.
    • Add .dll reference inside your .NET project.
    • Add reference to MATLAB.NET.

    The advantage of this method is that the target machine does not require MATLAB to be installed, but on the downside the execution is quite expensive.

    0 讨论(0)
提交回复
热议问题