• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

matlab的m文件怎么集成到vs里?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

目录
入门指南 1
MATLAB Builder for .NET是什么? 1
.NET Builder怎么工作? 1
创建COM组件 2
不支持的MATLAB数据类型 2
创建 .NET组件 2
步骤 2
Deployment Tool输出窗口的功能 2
使用命令行方式创建.NET组件 3
使用由MATLAB Builder for .NET创建的组件 3
Magic Square(幻方)样例 3
例子 3
用户向导 3
NWArray类库 3
由MATLAB Builder for .NET 创建COM组件 3
例程 3


入门指南
MATLAB Builder for .NET是什么?
MATLAB Builder for .NET(也称为 .NET构建者)是MATLAB编译器的一个扩展。使用她打包MATLAB函数以便.NET程序使用。.NET程序可以使用任何CLS如C#、VB.NET等编写。当发布程序时,必须包含由.NET Builder创建的支持文件以及MCR(MATLAB组件运行时)。
.NET Builder怎么工作?
.NET Builder转换MATLAB函数为封装MATLAB代码的.NET方法。每个.NET Builder组件包含一个或多个类。每个类提供一个M函数的接口。组件提供一个方法的集合。
.NET Builder提供强健的数据转换,索引器,还有数组格式的能力以维持MATLAB的灵活性。为支持MATLAB数据类型,.NET Builder提供MWArray 数据转换类。该类定义在 .NET Builder MWArray程序集。你得引用这个程序集以进行数据的转换。
.NET Builder 也提供自定义错误处理,这样源于MATLAB函数的错误可以像标准的托管异常一样被报告。错误描述包括特定的M代码参考,所以简化了调试过程。
注意所有M代码都要以函数的形式编译。
创建COM组件
你也能使用.NET Builder创建COM组件。
不支持的MATLAB数据类型
不支MATLAB对象数据类型,例如,时间序列对象,大多数无符号数字类型也不支持。
已知问题
在 MWNumericArray 或 MWLogicalArray 对象通过调用ToArray 方法返回的数据引用MATLAB稀疏数组格式可能是错误的或毁损的。此问题仅发生于 1.1版本的 .NET。
创建 .NET组件
在创建一个组件你需要写M代码(或使用已有的代码)然后创建一个工程(在MATLAB Builder for .NET)以封装M代码。本节描述如何使用Deployment工具创建.NET 组件。也可以使用mcc命令创建组件。
步骤
1, 写、测试、保存M代码;
2, 执行MATLAB命令:deploytool 出现Deployment工具对话框。
3, 创建一个新的工程。注意选择好项目:MATLAB Builder for .NET->.NET Component
4, 添加你要封装的M文件。
5, 设置building and packaging的属性。点击按钮Settings可以打开设置的对话框。
6, 保存工程
7, 构建组件。
8, 测试、编辑、重建组件,如果需要。
如果需要可以打包文件。发布和运行自解压文件在其他的开发平台或机器。
如果还没有设定好编译器,则被要求设置编译器。
Deployment Tool输出窗口的功能
当生成组件及之后时,该窗口出现在下方。在其窗口内点击右键弹出菜单可以使用更多的功能。例如选择文本,把选择的文本当成命令或文件名等。
使用命令行方式创建.NET组件
也可以使用mcc命令的方式来创建组件。Mcc是编译器。
此处略。
使用由MATLAB Builder for .NET创建的组件
1, 确保可以引用生成的DLL文件;
2, 在VS2008 等开发环境的项目中引用该DLL。通常涉及到数据转换,需要引用MWArray类库,在matlabroot\toolbox\dotnetbuilder\bin\win32.
3, 像普通的类一样实例化和调用对象的方法。要在本地.NET类型和MATLAB数组类型之间编排数据需要使用MWArray data conversion classes。
注意所对应的.NET版本。
Magic Square(幻方)样例

例子
创建一个M文件,如:myfun.m
function [y1,y2]=myfun(x1,x2,x3)
y1=x1;
y2=x2+x3;

在Matlab中执行:deploytool 打开工具箱,添加上面的M文件myfun.m。可以设置相关的工程属性。如组件的名称(命名空间)。
生成:test.dll
在VS2008中新建一个项目,比如一个C#的控制台项目。然后引用这个test.dll。
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;

        static void Main(string[] args)
        {
            test.testclass t = new test.testclass();
            MathWorks.MATLAB.NET.Arrays.MWArray[] x = t.myfun(2, 2, 3, 4);
        }


用户向导

NWArray类库

由MATLAB Builder for .NET 创建COM组件

================例子===========================================================

Matlab 版本是 2009b
C# 集成开发环境:VS 2008

创建最简单的实现加法功能的M函数如下:add.m

function y=add(x1,x2)
y=x1+x2;

保存好。

deploytool

注意选择类型为 .NET 程序集。然后添加M文件。





Build



引用生成的 add.dll。此外由于涉及数据转换,还要引用MWArray.dll

在VS2008中创建最简单的C#控制台程序。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;

namespace matlabtest
{
    class Program
    {
        static void Main(string[] args)
        {
            add.addclass add1 = new add.addclass();
            MWArray y = add1.add((MWArray)1, 2);
            Console.WriteLine ("结果是:{0}",y);
            Console.ReadKey();
        }
    }
}


生成发布版本。

到bin目录下,可以发现两个程序:

其中的 add.dll 和 matlabtest.exe ,发布时,这两个程序要一起发布。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi 实现接口 Unsatisfied forward or external declaration发布时间:2022-07-18
下一篇:
说说Delphi10.4的对象释放发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap