【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);

运行结果:

相关推荐
正运动技术15 小时前
PC强实时运动控制(一):C#的EtherCAT总线初始化(上)
c#·运动控制·正运动技术·运动控制器·ethercat·正运动·运动控制内核
d111111111d16 小时前
在STM32中,中断服务函数的命名有什么要求?
笔记·stm32·单片机·嵌入式硬件·学习·c#
yugi98783816 小时前
基于M序列的直扩信号扩频码生成方法及周期长码直扩信号的MATLAB实现方案
开发语言·matlab
ytttr87317 小时前
matlab进行利用遗传算法对天线阵列进行优化
开发语言·算法·matlab
啊阿狸不会拉杆17 小时前
《数字图像处理》第 5 章-图像复原与重建
图像处理·人工智能·算法·matlab·数字图像处理
极客智造17 小时前
深入解析 C# Type 类:解锁反射与动态编程的核心
c#·反射
春日见17 小时前
如何跑通,吃透一个开源项目?
linux·运维·开发语言·数码相机·matlab
技术净胜17 小时前
MATLAB数据清洗流程包含:缺失值处理/异常值检测/重复值删除
开发语言·matlab
SmoothSailingT17 小时前
C#——textBox控件(1)
开发语言·c#
superman超哥18 小时前
仓颉语言中并发集合的实现深度剖析与高性能实践
开发语言·后端·python·c#·仓颉