c#调用matlab

http://blog.sina.com.cn/s/blog_6317acb50100v0jw.html

编译环境:c#,xp系统,Matlab6.5

新建一个窗体项目,添加matlab引用。

然后试了四种方式调用matlab:

第一种

  1. MLApp.MLAppClass matlab = new MLApp.MLAppClass();
  2. matlab.Visible = 1;
  3. matlab.Execute("figure(1)");

第二种

  1. MLApp.DIMLApp matlab = null;
  2. Type matlabAppType = System.Type.GetTypeFromProgID("Matlab.Application");
  3. matlab = System.Activator.CreateInstance(matlabAppType) as MLApp.DIMLApp;
  4. matlab.Visible = 1;
  5. matlab.Execute("figure(2)");

第三种

  1. MLApp.MLApp matlab = null;
  2. Type matlabAppType = System.Type.GetTypeFromProgID("Matlab.Application");
  3. matlab = System.Activator.CreateInstance(matlabAppType) as MLApp.MLApp;
  4. matlab.Visible = 1;
  5. matlab.Execute("figure(3)");

第四种

  1. MLApp.MLApp matlab = new MLApp.MLApp();
  2. matlab.Visible = 1;
  3. matlab.Execute("figure(4)");

四种情况在本机上均可启动matlab

然后把生成的程序copy到(包括Interop.MLApp.dll)

1,xp系统,matlab2009a

发现第一和第四种方式运行会报错,第二和第三种可以启动matlab。

这MLApp.MLAppClass, MLApp.DIMLApp,MLApp.MLApp三者的区别我不晓得,杯具。

2,win7系统,matlab2009a

结果同1。

编译环境:c#,win7系统,Matlab2009

四种调用方式不变,在本机上均可运行

然后把生成的程序copy到(包括Interop.MLApp.dll)

1,xp系统,matlab6.5

发现第一和第四种方式运行会报错,第二和第三种可以启动matlab。

2,xp系统,matlab2009a

四种情况在本机上均可启动matlab

结论:为了避免matlab版本问题,最好使用第二和第三种方法。

C#调用Matlab 引擎

在C#中调用Matlab, 需要先配置一下Matlab编译器, 然后在VS里面引用Matlab组件
具体操作如下:

在VS里面引用Matlab组件
引用   .Net MWArray API (不是必须)
引用Matlab Application Type Library

using MathWorks;
using MathWorks.MATLAB;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using MLApp;
private void button1_Click(object sender, EventArgs e)
    {
        MLApp.MLAppClass matlab = new MLApp.MLAppClass();
        string command;
        command = "t=2:0.2:4*pi;y=sin(t);plot(t,y)";
      
        matlab.Visible = 1;         
        matlab.Execute(command);     // 执行Matlab命令
        command = @"print(gcf,   ‘-djpeg‘,   ‘c:\Test1‘)";     // 保存图片
        matlab.Execute(command);
        matlab.Quit();
        matlab = null;
        pictureBox1.Image = Image.FromFile(@"c:\Test1.jpg");   
    }

时间: 2024-08-03 11:39:53

c#调用matlab的相关文章

Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结

1.1. 边缘检测的基本方法Canny最常用了1 1.2. 编写matlab边缘检测代码,保存为m文件1 1.3. 通过cli接口调用Matlab执行m文件1 1.4. 效果如图1 1.1. 边缘检测的基本方法Canny最常用了 1.2. 编写matlab边缘检测代码,保存为m文件 fprintf('Hello World'); imag = imread('C:\00edge\a.jpg');  %读取 imag = rgb2gray(imag);        %转化为灰度图 %imag_f

asp.net下调用Matlab生成动态链接库

对于这次论文项目,最后在写一篇关于工程的博客,那就是在asp.net下调用matlab生成的dll动态链接库.至今关于matlab,c/c++(opencv),c#(asp.net)我总共写了4篇配置的博客,配置问题搞了我们差不多2周多的时间,各种编译不通过,各种链接出问题,各种头疼,甚至都有放弃asp.net下建工程,转用matlab的gui来实现前端界面的念头了.但是在队友的强烈要求下,我不得不硬着头皮搞下这配置问题,最终总结出这4篇配置博客.其中艰辛,恐怕连队友都不甚了解. 当然在实验室同

Windows、Linux、Web安装及调用Matlab程序完整说明(大章)

本文档详细说明了Linux下Web项目调用Matlab函数的完整操作,文章适合对Java.Linux有一定基础了解的人群(不了解也没什么,无非是多试几次).因Linux作为服务器,所以未在其上安装Matlab主程序,只安装了运行环境MCR. 本文档内所述的所有版本软件均以32位为准,JDK与MCR也使用32位.若你的系统为64位,Linux系统同样为64位,则请尽量选择使用64位版本的JDK与MCR. 由于Matlab的版本限制问题,请保证Matlab主程序和MATLABCompiler Run

安装及调用Matlab程序可能存在的问题解决办法

无法执行本地调用Matlab函数JAR包,容易出现的问题 a检查你的环境变量Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; F:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win32; F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin; 这是2个程序,需要都配置环境变量. b M

java调用matlab函数

如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量,运行tomcat,Eclipse等都需要依靠环境变量JAVA_HOME,Path,classpath,具体的设置可以参考这里 为了使在matlab中将.m函数编译为jar包,还需要在classpath中添加: %matlabInstallRoot%\R2010a\toolbox\javabuild

用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器

平时不怎么玩游戏,有时消遣就玩玩QQ里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个“外挂”.说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的软件,有点违法的意思,况且自己还没有能力去那么做,所以自己还是弄个瞄准器,做做弊,过下小瘾,同时也提高一下自己的编程能力. 起初(也就是半年前),自己尝试做一个瞄准器的初始版本,用C#做,想法很简单: Step1.把鼠标移到洞口,获取鼠标位置: Step2.将鼠标放到要击打的球的圆心上,获取鼠标当前

[Python-MATLAB] 在Python中调用MATLAB的API

可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html MATLAB Engine API的使用文档: http://cn.mathworks.com/help/matlab/matlab-engine-for-python.html 原材料: 1.MATLAB 2015a  32位的 2.Python 2.7.13    32位

【新年送礼】国内第一部C#.Net调用Matlab进行混合编程的视频教程【彻底免费无注册码】

其他混合编程文章 1[原创]Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码) 2.[原创]Matlab.NET混合编程技巧之——找出Matlab内置函数 3.[原创]Matlab与.NET混编解决人脸识别问题 4.[原创]Matlab与.NET基于类型安全的接口编程入门 5.[原创分享]Matlab.NET混编调用Figure窗体 一.视频说明 2014年的5.1,我将这套视频教程进行了免费下载,免费注册开放:[5.1送礼]国内第一部Matlab和C#.Net混合编程

.net 调用 Matlab生成dll出现的问题(The type initializer for 'MathWorks?.MATLAB.NE?T.Utility.?MWMCR' threw an exception.)

https://cn.mathworks.com/matlabcentral/answers/278399-i-get-an-error-saying-the-type-initializer-for-mathworks-matlab-net-utility-mwmcr-threw-an-except 这篇文章帮忙解决了问题 记录一下备忘: Hi Nug, Ensure that you have the MCR version corresponding to MATLAB 2012b ins

C++调用matlab函数

C++与matlab混合编程--C++调用MATLAB函数 笔者最近在从事一个MFC相关的项目,要求将用Matlab实现的算法通过应用MFC制作成一个小应用.其中有一部分内容需要求一个多元函数的最值.通过网络,我找到了两个C++优化库,dlib与MIDACO_Project ,可是这两个库中的优化函数的应用方式无法融入MFC编程框架,因此想到应用matlab与C++混合编程来实现相关计算.在网络上查了很多资料使问题得到了解决,下面对之前所查资料的内容做一番总结. 一.编译matlab函数 在ma