所以我想创建一个函数来计算一个问题的解决方案的"成本"。
我创建了一个包含整数值的一维数组Sum(m)。这在另一个子过程中被引用。
Function Cost(sum As Integer, a As Integer) As Long
Dim total As Long
'Calculate cost
For m = 1 To 2 * n + 2
total = total + (sum(m) - a) ^ 2
Next m
Cost = total
End Function
我不太确定我应该在
行括号部分使用什么Function Cost(sum As Integer, a As Integer) As Long
当我尝试在子过程中调用函数时,我得到错误消息- 编译错误:预期数组。这发生在
行SolCost = Cost(sum, UBound(x))
我真的很困惑为什么会发生这个错误。这可能是因为我严重缺乏使用VB的经验。希望你们能帮帮我。
如果你需要更多的信息,请不要犹豫,尽管问。如有任何帮助,不胜感激。您不能像那样UBound
多维数组。必须对数组的一个特定维度进行UBound
。所以如果X(i,j)
是你的数组,你必须用UBound(X,1)
来表示第一个维度,或者用UBound(X,2)
来表示第二个维度。这可以扩展到任何维度。看看w3schools,他们的文章涵盖了多维数组。