C#调用Matlab库函数
来源:互联网 发布:linux系统jdk1.6 下载 编辑:程序博客网 时间:2024/05/17 08:30
C#调用Matlab库函数
1. 以C#调用Matlab中dicomread与dicominfo为例编写了此示例。
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规范的语言不支持uint16、uint32和uint64类型,但这三个在Matlab中是支持的。所以给.net开发组件时,这三种类型的变量就不能被用于M函数中。最后的structure和cell这两种数据类型在.net中完全无法找到合适的对应类型,用N/A来表示。
3. Step2编写MatlabCode
编写.m库函数
Matlab工具箱deploytool生成dll
Ø Command window中输入deploytool
Ø 选择.Net Assembly,添加相关.m文件
Ø 工程名为MatlabFunction,C#using时用该名
Ø 修改Class1类名为CS_Matlab,C#实例化时用该类
Ø Files required for your library to run中添加DicomInterface.dll
Ø 将MicrosoftFramework设置为3.5
Ø 设置完成后如下图所示,点击Package封装函数
注:最终生成MatlabFunction.dll,MatlabFunctionNative.dll两个文件
4. Step3编写C#TestCode
l 添加C#控制的项目
l 添加MatlabFunction.dll,MatlabFunctionNative.dll,MWArray.dll,DicomInterface.dll引用
l 添加using MatlabFunction,using MathWorks.MATLAB.NET.Arrays
l 解析MWArray数据时先转Array后强制转换为Double[,]类型
l 解析MWStructArray时,通过.FieldNames先获取FileName[]数组,然后.GetField读取文件MWArray最后进行数据转换
l 最终代码如下
源代码及说明文档Word版下载(实在不熟悉CSDN的编辑器囧!!)
http://download.csdn.net/detail/fei13148687/9781816
3 0
- C#调用Matlab库函数
- C#调用MATLAB 库函数记录
- C++中调用Matlab库函数
- Matlab调用opencv库函数的具体应用
- Matlab调用外部库函数方法和注意事项
- C#调用matlab
- c#调用matlab
- C#调用Matlab
- C#中调用matlab
- Matlab 调用 C# dll
- C# Matlab 相互调用
- c#调用matlab脚本
- C#调用matlab
- C# Matlab 相互调用
- MATLAB调用OpenCV2.4库函数的全过程及问题解决
- Mac上(Xcode7)使用Matlab调用libsvm库函数
- C++调用Matlab Compiler Runtime库函数的最简方法
- C#调用matlab(转载)
- 代码混淆-Proguard
- 设计模式总结(来自转发)
- 准备养成写博客的习惯--记录于20170315
- 华为S2700-26TP-SI-AC交换机的光模块解决方案
- 去年被315晚会点名的互联网公司,现在活得好吗
- C#调用Matlab库函数
- HttpClient使用总结
- iOS内存分配
- java序列化(三)之FastJson实现复杂对象序列化与反序列化
- 布局改变监听事件
- Android|图形图像之Matrix
- hdfs回顾总结(1)
- 比勤奋更重要的,是深度思考的能力
- 三天打鱼两天晒网(C语言)