将.NET组件集成到F#应用程序中
这F#编程语言提供机会实现通常使用C#实施的相同解决方案,但代码较少。金宝搏官方网站当在企业范围内的安装上缩放部署解决方案时,或者在任何重视代码效率的情况下,这都可能会有所帮助。F#程序的简洁性也可以使它们更易于维护。
以下示例向您显示了如何集成可部署的MATLAB魔法
函数到F#应用程序。
先决条件
你必须运行微软®视觉工作室®2010或更高版本使用此示例。
如果您在运行64位的系统上构建此示例Microsoft Visual Studio,您必须添加对32位的参考Mwarray
DLL由于当前模仿了Microsoft的F#编译器。
步骤1:构建组件
构建Magicsquarecomp
使用指令中的组件生成.NET组件并构建.NET应用程序。
步骤2:将组件集成到F#应用程序中
使用Microsoft Visual Studio2010年或更高版本,创建F#项目。
将引用添加到您的.NET组件和
Mwarray
在Visual Studio中。使.NET名称空间可用于您的组件,并且
Mwarray
库:Open MagicsquareComp Open Mathworks.matlab.net.arrays
用初始定义魔法正方形功能
让
陈述,如下:让魔术n =
实例化魔术方形组件:
使用MagicComp = New Magicsquarecomp.magicsquareclass()
定义输入参数:
使用inarg = new mwnumericarray(((int)n)
致电Matlab®,获取输出参数单元格数组,并将第一个元素作为两维浮点数阵列提取:
(MagicComp.Makesquare(1,inarg)。[0] .toArray():?> float [,])
完整的功能定义看起来像这样:
让魔术n = //实例化魔法平方组件使用magicComp = new Magicsquarecomp.magicsquareclass()//定义输入参数use inarg = new mwnumericarray(((int)n)// call matlab,获取输出参数cell array, //将第一个元素提取为2D Float阵列(MagicComp.Makesquare(1,inarg)。[0] .toArray():?> float [,])
添加另一个Let语句以定义输出显示逻辑:
令printmagic n = let numArray =魔术n //显示输出printfn“ [行,cols]的数字:[%d,%d]”(numarray.getLength(0))(numarray.getLength(numarray.getLength(1))printfn“ printfn” printfn““对于i in 0 .. numArray.getLength(0)-1为j in 0 .. numArray.getLength(1)-1 do printf“%3.0f” numarray。[i,j] printfn“ printfn”“ printfn” ========================= \ n“ improne(list.iter printmagic [1..19]))//暂停直到键键忽略键(system.console).ReadKey())
完整的程序列表如下:
步骤3:部署组件
有关将组件部署到最终用户的信息,请参阅MATLAB运行时。