关于C#和Matlab混合编程问题小结(一)

本文大概总结了混合编程的流程和出现“类型初始值设定项引发异常”这个问题的总结方法。

前提条件

  • Matlab安装了MCR,和版本配套的编译器
  • 准备一个.m函数

实现环节

配置matlab的编译器

这个相关的博文有很多,大概就是输入

mbuild -setup

如果弹出来是这个截图,就是已经安装好了,如果不是会自动弹出来安装网址,进入安装,rua就完事了

生成dll文件

 再然后就是输入

deploytool

  出现这个截图,选library complier进入界面

 生成的dll文件在自动弹出来的文件夹的这个子文件夹下面

 (啊写到这里突然觉着好麻烦呜呜但是还是要坚持记录一下不然就忘了,好不容易搞出来的下次再花时间可怎么整)

 写一个WPF窗体

大概就是个随便搞个触发的,反正也不是重点

其实还可以放个控件直接看结果,但是偷懒打断点了

啊这也就面临一个问题就是这个里面只有直接用matlab的MWArray进行运算的环节,没有转字符,还可以水一个第二趴的感觉hhhhh

引用dll

然后就是引用生成的dll

至于MWArray,可以不引用,反正也会自动弹出来让你引用,找还挺麻烦的(挠头)

这个就是代码,具体怎么使用如果有问题,其实在刚刚matlab自动生成的三个文件夹里面的for_testing文件夹就有个同名的.cs文件可以进行查看

 

打开之后是这样

虽然里面有不知道是啥的乱码反正能看懂其中的输入输出啥的

或者直接双击刚才引用里面的test

右边就是使用的方法

然后就是使用就van事儿啦!!!

初始值异常问题

就是这个报错

mua呀这个问题困扰了我一下午,网上一共看到过3种原因,我唯一起效的是这个

更改管理器的版本

这里和自己下载的matlab的版本要对应,我这里默认是any cpu所以一直不成功

好气,但是终于快写完了

还有两种可能的原因

添加MCR环境变量

我的matlab是R2020b,不知道是不是改了runtime得原因,我不加这个环境变量也能运行

再添加同名有native后缀的dll文件

反正感觉有点玄学,大概就是这样,散会!

下一篇大概是康康如果不是数字而是字符串啥的咋用,以及怎么和别的程序交互~~~

搞完了把所有的文件上传一下(大概如果记得的话)

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值