主要内容

将.NET组件集成到F#应用程序中

F#编程语言提供机会实现通常使用C#实施的相同解决方案,但代码较少。金宝搏官方网站当在企业范围内的安装上缩放部署解决方案时,或者在任何重视代码效率的情况下,这都可能会有所帮助。F#程序的简洁性也可以使它们更易于维护。

以下示例向您显示了如何集成可部署的MATLAB魔法函数到F#应用程序。

先决条件

你必须运行微软®视觉工作室®2010或更高版本使用此示例。

如果您在运行64位的系统上构建此示例Microsoft Visual Studio,您必须添加对32位的参考MwarrayDLL由于当前模仿了Microsoft的F#编译器。

步骤1:构建组件

构建Magicsquarecomp使用指令中的组件生成.NET组件并构建.NET应用程序

步骤2:将组件集成到F#应用程序中

  1. 使用Microsoft Visual Studio2010年或更高版本,创建F#项目。

  2. 将引用添加到您的.NET组件和Mwarray在Visual Studio中。

  3. 使.NET名称空间可用于您的组件,并且Mwarray库:

    Open MagicsquareComp Open Mathworks.matlab.net.arrays
  4. 用初始定义魔法正方形功能陈述,如下:

    让魔术n =
    然后,添加以下语句以完成功能定义。

    1. 实例化魔术方形组件:

      使用MagicComp = New Magicsquarecomp.magicsquareclass()
    2. 定义输入参数:

      使用inarg = new mwnumericarray(((int)n)
    3. 致电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 [,])
  5. 添加另一个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())

完整的程序列表如下:

F#魔术广场程序

步骤3:部署组件

有关将组件部署到最终用户的信息,请参阅MATLAB运行时