vb.net 向量和矩阵相乘,"return B(j)"报错“索引超出了数组界限”,程序如下,在线急等!!!

Function Judge_1st(ByVal A() As Double, ByVal R(,) As Double) As Double
Dim i, j As Integer
Dim B(3) As Double, MulAdd As Double
MulAdd = 0
For j = 0 To 3
For i = 0 To 2
MulAdd = MulAdd + A(i) * R(i, j)
Next i
B(j) = MulAdd
MulAdd = 0
Next j
Return B(j)
End Function

可以通过下断点方式,查看一下A() ,R(,) 元素的个数,是否为3和2追问

这是输入的A()

这是R()

追答

问题找到了,一个小问题, Return B(j) 改为 Return B
函数返回值改为 Function Judge_1st(ByVal A() As Double, ByVal R(,) As Double) As Double()

Function Judge_1st(ByVal A() As Double, ByVal R(,) As Double) As Double()
Dim i, j As Integer
Dim B(3) As Double
Dim MulAdd As Double
MulAdd = 0
For j = 0 To 3
For i = 0 To 2
MulAdd = MulAdd + A(i) * R(i, j)
Next i
B(j) = MulAdd
MulAdd = 0
Next j
Return B
End Function

追问

这样不对呢,直接报错,见截图

追答

函数定义部分有问题,返回值是一个数组,要有括号

Function Judge_1st(ByVal A() As Double, ByVal R(,) As Double) As Double

改为
Function Judge_1st(ByVal A() As Double, ByVal R(,) As Double) As Double()

温馨提示:答案为网友推荐,仅供参考
相似回答