求助!vb6.0的代码中调用matlab时出错,求高人指教!
vb代码如下:Sub NNStaticCal()
'调用 Matlab 进行神经网络静态计算
Dim MatLab As Object
Dim Result As String
Dim ArrayReal() As Double, ArrayImag() As Double
Dim RS_SubMat As Single
' Load rbf_weight
Set MatLab = CreateObject("Matlab.Application")
Call MatLab.MinimizeCommandWindow
Result = MatLab.Execute("cd " & App.Path)
Result = MatLab.Execute("load " & RBFNNFile)
RS_SubMat = (RsCoff_Lime * StaticLimeSet + RsCoff_Dolo * StaticDoloSet _
+ RsCoff_Dolo * StaticR_DoloSet + RsCoff_Flsp * StaticFlspSet + RsCoff_Fesi * StaticFeSiSet _
+ RsCoff_Coke * StaticCokeSet) / MainMaterialWeight
ReDim ArrayReal(1, 6)
ArrayReal(1, 1) = HMRatio: ArrayReal(1, 2) = ScrapRatio: ArrayReal(1, 3) = HMSi
ArrayReal(1, 4) = HMT: ArrayReal(1, 5) = AimT: ArrayReal(1, 6) = RS_SubMat
Call MatLab.putfullmatrix("in_iron", "base", ArrayReal, ArrayImag) '仿真用数据
ReDim ArrayReal(1, 5)
ArrayReal(1, 1) = HMT: ArrayReal(1, 2) = HMC: ArrayReal(1, 3) = RS_SubMat
ArrayReal(1, 4) = HMRatio: ArrayReal(1, 5) = AimT
Call MatLab.putfullmatrix("in_vo", "base", ArrayReal, ArrayImag) '仿真用数据
Result = MatLab.Execute("RBFStaticCal")
Dim TempIron() As Double, TempVO() As Double
Call MatLab.getfullmatrix("nnout_iron", "base", TempIron, ArrayImag)
Call MatLab.getfullmatrix("nnout_vo", "base", TempVO, ArrayImag)
TempVO(0, 0) = TempVO(0, 0) * IronTotal - OsCoff_Iron * TempIron(0, 0)
NNVO = TempVO(0, 0):
NNClant = TempIron(0, 0):
'显示 神经网络静态计算 结果
txtNNVO = CInt(NNVO)
txtNNClant = CInt(100 * NNClant) / 100
End Sub
matlab代码如下:
% iron_b1 8x1 64 double array 冷却剂训练结果
% iron_b2 1x1 8 double array 冷却剂训练结果
% iron_w1 8x6 384 double array 冷却剂训练结果
% iron_w2 1x8 64 double array 冷却剂训练结果
% mean_in_iron 1x6 48 double array 冷却剂网络训练集 输入段 的平均值
% mean_in_vo 1x5 40 double array 吹氧量网络训练集 输入段 的平均值
% mean_out_iron 1x1 8 double array 冷却剂网络训练集 输出段 的平均值
% mean_out_vo 1x1 8 double array 吹氧量网络训练集 输出段 的平均值
% std_in_iron 1x6 48 double array 冷却剂网络训练集 输入段 的平均值
% std_in_vo 1x5 40 double array 吹氧量网络训练集 输入段 的平均值
% std_out_iron 1x1 8 double array 冷却剂网络训练集 输出段 的平均值
% std_out_vo 1x1 8 double array 吹氧量网络训练集 输出段 的平均值
% vo_b1 4x1 32 double array 吹氧量网络训练结果
% vo_b2 1x1 8 double array 吹氧量网络训练结果
% vo_w1 4x5 160 double array 吹氧量网络训练结果
% vo_w2 1x4 32 double array 吹氧量网络训练结果
% in_iron 为6x6
% 输入变量标准化工作
in_iron=(in_iron-ones(size(in_iron,1),1)*mean_in_iron)./(ones(size(in_iron,1),1)*std_in_iron);
in_vo=(in_vo-ones(size(in_vo,1),1)*mean_in_vo)./(ones(size(in_vo,1),1)*std_in_vo);
NNTWARN OFF %有关信息显示的关闭
%神经网络输出计算
nnout_iron=simurb(in_iron',iron_w1,iron_b1,iron_w2,iron_b2); % simulate
nnout_vo=simurb(in_vo',vo_w1,vo_b1,vo_w2,vo_b2);
% 将神经网络输出的解标准化
nnout_iron=nnout_iron.*(ones(size(nnout_iron,1),1)*std_out_iron)+mean_out_iron;%std
nnout_vo=nnout_vo.*(ones(size(nnout_vo,1),1)*std_out_vo)+mean_out_vo;
nnout_vo=nnout_vo.*total_iron'-biron.*nnout_iron;
但是每次运行都出错,提示说 inappropriate input array size
请问各位大侠,这是怎么回事,帮我看看呗,我是初学者,都不是很懂,是不是matlab中的数组的维数有问题啊。不胜感激。 没用过matlab的,今天刚从百度启蒙的,不懂装顶的,本楼免分的……
路过帮顶……
补充:VB , 网络编程