我有一个Labview VI,我打算通过ActiveX从Matlab运行。它有一个参数(即一个Labview 控件),它是1D数字数组的类型。
用于通过ActiveX从Matlab调用VI的方法在previous post中详细说明。
我试图在运行VI之前在Matlab中设置此数组控件的值(也就是说,Matlab会将参数传递给VI然后运行它;不会通过Labview界面手动执行任何操作)。
通过GetControlValue
方法获取值可以正常工作(我得到了一个很好的Matlab数组)。但是,当我尝试使用SetControlValue
返回的值GetControlValue
设置同一控件的值时,控件的值变为空(从值空矩阵:1中可见)在再次使用GetControlValue
之后由Matlab获得的-by-0 ,在Labview中,控件的值变为灰色)。
当控件是单个数值时,相同的步骤可以正常工作。
这到底出了什么问题?
请参阅下面的屏幕截图:
答案 0 :(得分:0)
您可以将VI编译为DLL并以这种方式调用您的函数。这抽象出了LabVIEW的类型系统及其COM运行时。
您能提供有关您要解决的问题的更多详细信息吗?
答案 1 :(得分:0)
(来源:NI论坛上的0utlaw)。
此问题的有用解决方法是在Labview中使用 Matrix控件。 然后Matlab可以传递通常的数组,Labview将这些Matlab数组映射到矩阵。也可以按预期使用2D数组。