C#调用Matlab库函数

C#调用Matlab库函数

1. C#调用Matlabdicomreaddicominfo为例编写了此示例。
2. Step1编写C#interface

C#新建类库


添加MWArray.dll引用编写接口,注意设置编译平台为X64或与Matlab对应 

 

 数据格式转换表

.NET Type

MWArray Type

MATLAB Type

System.Double

MWNumericArray

double

System.Number

MWNumericArray

double

System.Float

MWNumericArray

single

System.Byte

MWNumericArray

int8

System.Short

MWNumericArray

nt16

System.Int32

MWNumericArray

int32

System.Int64

MWNumericArray

int64

System.Char

MWCharArray

char

System.String

MWCharArray

char

System.Boolean

MWLogicalArray

logical

N/A

MWStructArray

structure

N/A

MWCellArray

cell

注:遵循.NET CLS规范的语言不支持uint16uint32uint64类型,但这三个在Matlab中是支持的。所以给.net开发组件时,这三种类型的变量就不能被用于M函数中。最后的structurecell这两种数据类型在.net中完全无法找到合适的对应类型,用N/A来表示。

3. Step2编写MatlabCode

编写.m库函数

 

Matlab工具箱deploytool生成dll
Ø Command window中输入deploytool
Ø 选择.Net Assembly,添加相关.m文件
Ø 工程名为MatlabFunctionC#using时用该名
Ø 修改Class1类名为CS_MatlabC#实例化时用该类
Ø Files required for your library to run中添加DicomInterface.dll
Ø MicrosoftFramework设置为3.5
Ø 设置完成后如下图所示,点击Package封装函数

 

注:最终生成MatlabFunction.dllMatlabFunctionNative.dll两个文件

4. Step3编写C#TestCode

添加C#控制的项目
l 添加MatlabFunction.dllMatlabFunctionNative.dllMWArray.dllDicomInterface.dll引用
添加using MatlabFunctionusing MathWorks.MATLAB.NET.Arrays
解析MWArray数据时先转Array后强制转换为Double[,]类型
解析MWStructArray时,通过.FieldNames先获取FileName[]数组,然后.GetField读取文件MWArray最后进行数据转换
l 最终代码如下



源代码及说明文档Word版下载(实在不熟悉CSDN的编辑器囧!!)
http://download.csdn.net/detail/fei13148687/9781816


 

 

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值