Matlab与Labview混合编程(二)

版权声明

无需授权即可转载

Labview调用.Net文件

之前生成得.Net文件夹里面有两个.Net文件,分别是MagicSquareComp.dllMagicSquareCompNative.dll,通过文件夹里面的readme文件我们可以知道他们之间的区别,主要在于对MWArray文件的调用

MagicSquareComp.dll

-contains the generated component using MWArray API.

MagicSquareCompNative.dll

-contains the generated component using native API.

这里我们使用MagicSquareComp.dll文件,通过LabVIEW调用.Net文件的方法也很简单,在Block Diagram下面通过Connectivity » .NET » Constructor Node

弹出选择.Net Constructor选项框

选择之前生成的.Net文件,构造器选择Class1(),点击OK

这样我们就已经成功将.Net文件加载到LabVIEW中,接下来我们通过它的方法和属性来实现这个函数的功能

方法和属性

.Net文件得加载可以理解为对一个类的实例化,实例化之后就可以使用这个类得属性和方法,它的方法就是Matlab里面得函数,在这节点得new reference连接端右键选择它得方法,我们可以看到这个节点有几个可以使用得方法

其中makesquare(MWArray x)就是matlab里面得那个函数,括弧里面是输入变量

x是MWArray得类型,这个类型是Matlab特有得数据类型,为了可以正确使用这个数据类型,我们需要使用上一节说过得MWArray得类文件,调用方法与之前一样,调用后,选择如下图所示得构造器

之后在输入端给定一个常量,这里为了验证函数得正确性,常量为5

接下来在输出端,我们可以直接使用MWArray得ToString方法获得最终得结果

获取矩阵形式得结果

通过ToString得方法我们只是得到了一串字符串,对于后续结果得使用不是很方便,接下来我们通过ToArray得方法得到数组得结果

要想得到正确得数组,我们首先需要知道数组得行列数分别是多少,这里可以通过Dimensions得属性得到,还可以通过NumberofDimensions得到数组得维度

从这里得知,结果是个5行5列得二维数组,所以需要用两个For循环来构建最终得结果,最终得程序如下

实时更改输入

我们使用一个While循环实现实时更改输入获取最终得输出,通过Dimensions得数值来作为For循环得循环次数,最终得程序如下

下一篇我们看看如何应对多个输出,下次见

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181210G0U54J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券