本文主要是介绍记VS2010与MATLAB混合编程遇到的一些问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、首先使用的是win7 ×64系统 VS2010软件和MATLAB2014b
问题:MATLAB2014b进行打包时,总是打包失败。
原因:我使用的这个MATLAB版本破解不完全,可以进一步破解然后尝试。
二、重新安装了MATLAB2015a是个破解完全的
打包的问题成功解决了。写了小的测试代码,但是在使用打包的类创建对象时,显示如下错误
首先查看是否是目标平台设置不匹配,见下面第6条 。
三、具体打包过程和解决问题如下
1. 安装好MATLAB后,还需要找到安装路径下的(我的是D:\matlab2015a\toolbox\compiler\deploy\win64)中的MCRInstaller.exe进行安装,安装之后 环境变量时自动添加的,可以查看一下,如果没有可以手动添加MCRInstaller.exe的安装路径。
2. 安装之后还需要在dos环境注册regsvr32 mwcomutil.dll(未尝试不注册是否可以)
3. 利用MATLAB2015b建立函数,保存目录尽量不要放在桌面以及路径不要使用中文
function result = mypower(x,y)%UNTITLED Summary of this function goes here% Detailed explanation goes hereresult=power(x,y);end
4. 在matlab的主界面找到 -----> APPS-----> Library Compiler ,打包dll文件 注意c#编程需要选择.NET Assembly 然后添加刚刚写的mypower.m文件,点击Package(绿色对勾)进行打包操作。
打包结束会产生一个mypower文件夹,里面有for_redistribution,for_redistribution_files_only和for_testing子文件夹,我们需要的mypower.dll就在 for_testing文件夹中。
5. VS2010新建一个控制台的工程, 在工程的引用上右键---->添加引用
选择浏览,将刚刚生成的 for_testing文件夹中的mypower.dll和D:\matlab2015a\toolbox\dotnetbuilder\bin\win64\v2.0安装目录下的MWArray.dll添加进去
6. 右键点击自己创建的c#工程,选择属性,如果是x64系统,需要修改如下(本人就是在此处出现错误),修改为目标平台x64,否则会出现,调用 MATLAB 函数 时参数一直不匹配。
7. 添加引用 using MathWorks.MATLAB.NET.Arrays; using MathWorks.MATLAB.NET.Utility;using mypower;
具体代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathWorks.MATLAB.NET.Arrays;
using mypower;
namespace Conpower
{class Program{static void Main(string[] args){MWArray x = 2, y = 4, result = 0;Classpower po = new Classpower();result = po.mypower(x, y);Console.WriteLine("c#和MATLAB混合编程测试函数 power(" + x+ ","+ y +")= "+result);Console.ReadKey();}}
}
8. 结果
这篇关于记VS2010与MATLAB混合编程遇到的一些问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!