Html 运行时错误1004:协方差逆矩阵

Html 运行时错误1004:协方差逆矩阵,html,.net,Html,.net,这里有点新!我试图计算两个向量之间的马氏距离,我需要计算两个向量之间的协方差矩阵。 我有以下代码来实现这一点:基本上,向量是大小为1x8的行向量。它们存储在变量x1和x2中。然后取这两个值的差值并存储在diff中。 有一个单独的函数来计算协方差矩阵,它存储在covar1中。 但是,当我执行此操作时,在计算协方差矩阵的逆矩阵的行上会出现运行时错误1004: covarinv=工作表函数.MInverse(covar1) 在此方面的任何帮助都将不胜感激! 多谢各位 Sub calculat() D

这里有点新!我试图计算两个向量之间的马氏距离,我需要计算两个向量之间的协方差矩阵。 我有以下代码来实现这一点:基本上,向量是大小为1x8的行向量。它们存储在变量x1和x2中。然后取这两个值的差值并存储在diff中。 有一个单独的函数来计算协方差矩阵,它存储在covar1中。 但是,当我执行此操作时,在计算协方差矩阵的逆矩阵的行上会出现运行时错误1004:

covarinv=工作表函数.MInverse(covar1)

在此方面的任何帮助都将不胜感激! 多谢各位

Sub calculat()

Dim x1() As Variant
Dim x2() As Variant
Dim diff() As Variant
Dim covar1 As Variant
Dim covarinv As Variant
Dim md() As Variant



x1 = Range("b3:i3")
x2 = Range("b4:i4")




n1 = UBound(x1, 1)
n2 = UBound(x1, 2)
m1 = UBound(x2, 1)
m2 = UBound(x2, 2)

ReDim diff(1 To n1, 1 To n2)
    For j = 1 To n1
    For i = 1 To n2
        diff(j, i) = x1(j, i) - x2(j, i)
    Next i
    Next j

covar1 = VarCov(Range("b3:i7"))

covarinv = WorksheetFunction.MInverse(covar1)

temp = WorksheetFunction.MMult(diff, covarinv)
difft = WorksheetFunction.Transpose(diff)
md = WorksheetFunction.MMult(temp, difft)

End Sub


Function VarCov(rng As Range) As Variant

    Dim i As Integer
    Dim j As Integer
    Dim colnum As Integer
    Dim matrix() As Double

    colnum = rng.Columns.Count
    ReDim matrix(colnum - 1, colnum - 1)

    For i = 1 To colnum
        For j = 1 To colnum
            matrix(i - 1, j - 1) = Application.WorksheetFunction.covar(rng.Columns(i),        rng.Columns(j))
        Next j
    Next i

    VarCov = matrix

End Function