首页 > 学院 > 开发设计 > 正文

C# 调用 matlab两种方法实现

2019-11-14 10:28:15
字体:
来源:转载
供稿:网友

C# 调用 matlab两种方法实现

系统环境,Win7 32位+ VS2010 + MatlabR2012b

 

一、首先,在matlab中编辑函数。函数代码如下:

function [ V ] = cubic(L ) %一个输入参数L,一个输出参数V ,函数名cubic。

V=L^3

end

二、在matlab命令行中 执行mbuild –setup命令,选择VS2010 C++编译器。

三、在matlab命令行中,执行deploytool命令调出图形界面来编译对应的组件。这里主要用com组件和.net

四、编译步骤,新建工程名称,添加类,添加M文件的步骤来操作,添加好后build可以生成.dll文件。。

五、C#调用

1、把matlab中生成com组件的dll文件拷贝到当前项目文件目录下,添加引用,然后调用。

PRivate voidbutton1_Click(object sender, EventArgs e)

       {

           cub2.Class1 c1 = new cub2.Class1();

           object v=0;

           c1.cubic(1,ref v, int.Parse(this.textBox1.Text.Trim()));

           MessageBox.Show(v.ToString());

       }

2、matlab中生成.netassembly类型的dll拷贝到当前目录下,添加引用,然后调用。这里注意matlab中一个方法被重载为5个,特别是数据类型的转换存在问题。

private void button1_Click(object sender,EventArgs e)

       {

           int v=0;

           MWNumericArray m_output = newMWNumericArray(v);

           MWNumericArray m_input = newMWNumericArray(int.Parse(this.textBox1.Text.Trim()));

           cub3.sgx sgx = new cub3.sgx();

           m_output =(MWNumericArray)sgx.cubic(m_input);

           double[,] result=(double[,])m_output.ToArray();

           MessageBox.Show(result[0,0].ToString());                      

       }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表