我是靠谱客的博主 迅速鞋子,最近开发中收集的这篇文章主要介绍C#调用Matlab函数及遇到的问题一、Matlab编辑函数二、C#编写工程文件三、遇到的问题及解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、Matlab编辑函数

1、以一个简单的加法为例,编写.m文件运行无误并保存。

function res = add(x,y)
res = x+y;
end

2、在命令行输入deploytool命令,打开Compiler,选择Library Compiler选项。

3、打包生成.dll文件

 4、得到.dll文件

        在生成的add文件夹的for_testing子文件夹中有个add.dll文件,以及在Matlab安装位置D:SoftwareMatlab2016toolboxdotnetbuilderbinwin64v2.0中有个MWArray.dll文件,后续需要用到。

二、C#编写工程文件

1、新建WindowsFormsApp1工程

2、将上述add.dll和MWArray.dll文件拖放到该工程文件夹下,并包含引用

 3、编写代码

        注意引用:

using MathWorks.MATLAB.NET.Arrays;
using add;

        demo效果:按下button1后,label1输出求和结果。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Arrays;
using add;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("开始");
MWArray add_x = (MWArray)15;//c#和matlab的数据传送必须用MWArray类型
MWArray add_y = (MWArray)10;
MyAddClass temp_obj = new MyAddClass();
string str = temp_obj.add(add_x, add_y).ToString();
label1.Text = str;
}
}
}

 4、结果

三、遇到的问题及解决方法

        遇到“MathWorks.MATLAB.HET.Arrays.MWArray”的类型初始值设定项引发异常的问题,查阅资料后大致了解是版本差异的原因,即我装的Matlab这边生成的dll和MWArray.dll是x64文件(因为我装的是64位matlab),而我的C#生成的时候选择的平台目标默认首选32位(即x86),导致不匹配。

        解决方法:在VS2017项目中修改属性,生成时的平台目标选择x64。 问题解决。

最后

以上就是迅速鞋子为你收集整理的C#调用Matlab函数及遇到的问题一、Matlab编辑函数二、C#编写工程文件三、遇到的问题及解决方法的全部内容,希望文章能够帮你解决C#调用Matlab函数及遇到的问题一、Matlab编辑函数二、C#编写工程文件三、遇到的问题及解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部