登录论坛

查看完整版本 : [求助]vb和matlab接口有关matlab程序调用vb数组的问题


xuexizhe
2008-07-31, 22:12
程序如下:
Private Sub cmdTest_Click()
Dim Data3(1 To 200, 1 To 5001) As Double
Dim Data4(1 To 200, 1 To 5001) As Double
Dim data(1 To 100, 1 To 1000) As Double
Dim sng0 As Double
Dim i As Integer
Dim j As Integer

'从文件中读取数据
'Open App.Path & "\data1.dat" For Input As #1
CommonDialog1.ShowOpen
'dblData = openCommonDialog1.FileName
Open CommonDialog1.FileName For Input As #1


For i = 1 To 200
For j = 1 To 5001
Input #1, sng0
Data3(i, j) = sng0
Next j
Next i
Close #1
'Print Data3(1, 1)
'Open App.Path & "\data2.dat" For Input As #1
CommonDialog2.ShowOpen
'dblData = openCommonDialog1.FileName
Open CommonDialog2.FileName For Input As #1


For i = 1 To 200
For j = 1 To 5001
Input #1, sng0
Data4(i, j) = sng0
Next j
Next i
Close #1
For i = 1 To 100
For j = 1 To 1000
data(i, j) = Data4(i, j)
'Print data1(i, j)
Next j
Next i
For i = 1 To 10
For j = 1 To 10
Print data(i, j)
Next j
Next i
'调用接口函数
'Call theMatlab.tttt1(Data3, Data4)
Call theMatlab.ceshi5(data)

'txtPt.Text = Format(dblPt, "##,##0.000")
'txtQd.Text = Format(dblQd, "##,##0.000")

其中将Data3,Data4等数据传送到接口程序中时:提示:“类型不匹配”错误
就是说vb中导入的数据数组到matlab程序中时,数据类型不匹配:
请高手指点!

renyanning
2008-08-02, 15:25
你试试定义成 Variant类型的数据

小河流口水
2009-04-18, 16:49
我也碰到这个问题了!哪位能指点一下,这种赋值的具体操作方法啊!

小河流口水
2009-04-18, 17:05
LZ能不能告诉我在MATLAB中数组是怎么使用的,能把FUNCTION函数也传上来吗?谢谢

未注册
2012-04-07, 14:50
我也用到这个问题啊,数组不能正确调用,不过你那个肯定有问题,调用Call theMatlab.ceshi5(data)格式是(n,y1,y2..,x1,x2..),n申明输出变量的个数。

未注册
2012-04-07, 20:37
以这种形式进行,例如Call theceshiyong.ceshiyong2(4, b, c, d, e, a()) ,a()为输入得二维数组,matlab对a()数据的读取与其各维上角标无关,可以把a()看成一个表格,matlab按列读取按列赋值。注意a()所有会被调用元素都要赋值哦,否则会显示出错或者什么都不显示,但不进行m文件中运算。