使用VBA进行数组乘法和矩阵求逆

BVF*_*anZ 0 vba

我试图用数组做一些计算.

例如,我想解决Ax=y,所以我使用以下代码来做到这一点,其中A是方阵,y是col.向量.在VBA中,A是具有二维的数组,y是具有一维的一个.但是,这段代码不起作用......

x = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), y)
Run Code Online (Sandbox Code Playgroud)

我哪里弄错了?谢谢!

Jea*_*ett 7

你可能犯了很多错误中的一个或多个:

  • 未定义的数组Variant(如果数据类型不是,则大多数工作表函数不起作用Variant).
  • 矩阵乘法所需的尺寸Ay不匹配.
  • 特别是,如果y尺寸(1,2)不是(2,1)如下例所示,则不起作用.
  • 等等......可以是任何东西,真的.您没有告诉我们您收到的错误消息.

这是一个有效的例子:

Dim A As Variant
Dim y As Variant
Dim x As Variant

ReDim y(1 To 2, 1 To 1)
y(1, 1) = 2
y(2, 1) = 3

ReDim A(1 To 2, 1 To 2)
A(1, 1) = 3
A(2, 1) = 1
A(1, 2) = 4
A(2, 2) = 2

x = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), y)
Run Code Online (Sandbox Code Playgroud)