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
    评论
Matlab作为一种广泛应用的工具和编程语言,拥有丰富的内置函数和工具箱。然而,无论如何完善的函数也难以涵盖所有可能的应用场景。 首先,Matlab函数的不全性可能是由于需求多样化而造成的。作为一个通用的科学计算工具,Matlab函数主要聚焦于数学、信号处理、图像处理、统计学等领域。尽管已经包含了很多常用的函数,但仍然无法满足所有用户的需求。例如,特定领域的专业研究可能需要特殊的数学模型或算法,无法直接在Matlab函数中找到。 其次,新的技术和算法的不断发展也使得Matlab函数难以跟上最新的进展。科学和技术的快速发展导致了新的问题和挑战,需要不断创新和推出新的算法和方法。虽然MathWorks(Matlab的开发公司)会定期更新Matlab,并引入新的函数和工具箱,但仍然无法立即跟上每一个新技术的发展。 最后,Matlab的开放性和灵活性也使得用户可以自己编写自定义的函数来满足特定的需求。Matlab提供了强大的编程功能,用户可以根据自己的需要编写自己的函数,以实现特定的功能。这种灵活性使得Matlab可以满足更多的应用场景,而不仅仅局限于内置的函数。 综上所述,尽管Matlab函数不可能完全涵盖所有的应用场景,但其开放性和强大的编程功能使得用户可以通过编写自定义函数来满足特定的需求。同时,Matlab也会定期更新函数来跟上科技发展的要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值