【C#-1】C#调用matlab生成的dll库

matlab打包dll

1、matlab示例程序:

复制代码
function untitled4(x)
    z = peaks(x);
    figure
    surf(z)
end

2、输入deploytool打包matlab程序,具体如下:

3、拷贝

打包成功后,将生成for_redistribution_files_only文件夹中的dll文件拷贝到C#程序lib文件夹下,若没有,新创建一个。

错误解决:

解决方法:将matlab程序改写成一个方法。

C#调用dll

1、添加引用

MWArray.dll在matlab安装目录..\matlab\toolbox\dotnetbuilder\bin\win64\v4.0下,untitled4.ll与untitled4Native.dll在C#工程lib文件夹下。

2、导入包

复制代码
using untitled4;
using MathWorks.MATLAB.NET.Arrays;

3、添加button点击事件

复制代码
private void Button1_Click(object sender, EventArgs e)
{
    untitled4.Class1 p3 = new untitled4.Class1();
    p3.untitled4((MWArray)25);
}

完整示例代码:

复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using untitled4;
using MathWorks.MATLAB.NET.Arrays;

namespace test1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            untitled4.Class1 p3 = new untitled4.Class1();
            
            p3.untitled4((MWArray)25);
        }
    }
}

错误解决1:

解决方法:debug平台改为×64位

错误解决2:

解决方法:matlab程序返回一个数,而C#代码接收的是MWArray数据。

复制代码
p3.untitled4((MWArray)25);

运行结果:

相关推荐
星马梦缘2 小时前
Matlab机器人工具箱使用2 DH建模与加载模型
人工智能·matlab·机器人·仿真·dh参数法·改进dh参数法
上位机付工4 小时前
C#与倍福TwinCAT3进行ADS通信
开发语言·c#
土了个豆子的5 小时前
02.继承MonoBehaviour的单例模式基类
开发语言·visualstudio·单例模式·c#·里氏替换原则
疯狂的维修5 小时前
c#中public类比博图
c#·自动化
RickyWasYoung7 小时前
【代码】matlab-遗传算法工具箱
开发语言·matlab
土了个豆子的8 小时前
03.缓存池
开发语言·前端·缓存·visualstudio·c#
星马梦缘9 小时前
Matlab机器人工具箱使用1 简单的描述类函数
matlab·矩阵·机器人·位姿·欧拉角·rpy角
机器学习之心1 天前
PINN驱动的高阶偏微分方程求解MATLAB代码
matlab·物理信息神经网络·高阶偏微分方程
民乐团扒谱机1 天前
逻辑回归算法干货详解:从原理到 MATLAB 可视化实现
数学建模·matlab·分类·数据挖掘·回归·逻辑回归·代码分享
xiaowu0801 天前
策略模式-不同的鸭子的案例
开发语言·c#·策略模式