c#调用matlab神经网络模型生成的.dll

c#调用matlab神经网络模型生成的.dll
(给自己做笔记啦~)

.dll文件的生成:
1.建好神经网络模型后,新建.m文件,命名为forecast.m,将模型写成function函数。代码如下:

function [testoutputs]= BP(z)
load('forecast_net','net');
testinputs= z';%转置
testoutputs = sim(net,testinputs);%预测结果值
end

2.命令行输入deploytool,选择library compiler
c#调用matlab神经网络模型生成的.dll_第1张图片

TYPE选择.net,然后再exported functions添加你的.m文件,并在下方libraryinformation里命名。然后点击package进行打包。结束后会自动打开保存的位置。
3.在打开的文件中选择for_testing,找到两个.dll文件将其添加到你的c#工程下边。
在这里插入图片描述
4.找到MWArray.dll,位置在matlab安装路径下(%matlabpath%\toolbox\dotnetbuilder\bin\win32\v2.0),也将其添加在c#工程下面。

c#添加.dll文件:
1.在解决方案资源管理器里添加引用,浏览找到上面三个.dll文件,点击添加。
2.添加两个引用
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
3.c#详细代码如下

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 forecast;
using forecastNative;
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
namespace forecastmodel_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void forecastartBtn_Click(object sender, EventArgs e)
        {           
            forecastRun();
        }

        private void forecastRun()
        {
            //取实时数据
            forecastPara fcp = new forecastPara();
            fcp.AT = int.Parse(ATtxtBox.Text);
            fcp.DPT = int.Parse(DPTtxtBox.Text);
            fcp.RH = int.Parse(RHtxtBox.Text);

            //转换为matlab可识别的类型
            MWArray result = null;
            MWNumericArray a = new MWNumericArray(MWArrayComplexity.Real, 1, 3);
            a[1, 1] = fcp.AT; a[1, 2] = fcp.DPT; a[1, 3] = fcp.RH;

            //带入模型
            forecast.Class1 f = new forecast.Class1();//运行7s
            result = f.forecast((MWArray)a);//运行1.2s

            int s = ((MWNumericArray)result).ToScalarInteger();
            resulttxtBox.Text = s.ToString();
        }


    }
}

你可能感兴趣的:(c#调用matlab神经网络模型生成的.dll)