C#——调用Matlab函数

C#与Matlab交互

开发环境: Visual Studio 2019, .NetFramework 4.5, Matlab 2018b

1. C# 调用 Matlab


基本思路: 将 .m 文件(matlab 函数)打包为 .dll 文件以供 C# 调用

  1. Matlab 端操作

    1. 编写 matlab 函数

      function [x] = linear_equation_solve(A, b)
      %% 求解线性方程组 Ax = b
      x = A / b;
      end
      
    2. 将函数文件打包为 .dll 文件(使用matlab compiler)
      在这里插入图片描述

    3. 将打包得到的文件和 MWArray.dll 拷贝至需要引用的项目目录中,打包得到的文件一般包含 $function$.dll, $function$Native.dllMWArray.dll 可在 Matlab 的安装目录中找到

      Native和非Native的区别为: 用XXXXNative.dll在调用的时候,直接对参数采用了object类型,matab计算引擎会自己去识别。而非XXXXNative.dll都采用了精确的数据类型。参考: Matlab生成C#dll ,native 与非native的效率比较

  2. VS 端操作:将 $function$Native.dllMWArray.dll 添加至项目引用即可

    using System;
    using LinearEquationSolver;
    using MathWorks.MATLAB.NET.Arrays;
    
    namespace MatlabToDotNetSample{
        class Program{
            static void Main(string[] args){
                int[,] b_array = new int[,]{
                    {1}, {2}, {3}
                };
                int[,] a_array = new int[,]{
                    {1, 2, 3},
                    {4, 5, 6},
                    {7, 8, 9}
                };
                var A = new MWNumericArray(A_array);
                var b = new MWNumericArray(b_array);
                var result = new LinearEquationSolver.LinearEquationSolver().linear_equation_solve(A, b);
                }
        }
    }
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值