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

运行结果:

相关推荐
IT良3 小时前
c#增删改查 (数据操作的基础)
开发语言·c#
yufei-coder3 小时前
掌握 C# 中的 LINQ(语言集成查询)
windows·vscode·c#·visual studio
5967851548 小时前
DotNetty ChannelRead接收数据为null
tcp/ip·c#
jk_1019 小时前
MATLAB中decomposition函数用法
开发语言·算法·matlab
weixin_464078079 小时前
C#串口温度读取
开发语言·c#
明耀11 小时前
WPF RadioButton 绑定boolean值
c#·wpf
不想当个技术宅11 小时前
【梯级水电站调度优化】基于自适应权值优化粒子群算法
matlab·粒子群算法·梯级水电站调度优化
蓝色洛特13 小时前
【Matlab元胞自动机】《高速公路人工—自动驾驶混行交通流临界特征研究》
matlab·自动驾驶·元胞自动机·交通仿真
Death20013 小时前
Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件
c语言·开发语言·c++·qt·c#
quaer14 小时前
Open-Sora全面开源?
开发语言·算法·机器学习·matlab·矩阵