用户定义types未定义函数中的两个matrix相乘的错误
我想创build一个接收两个参数来进行matrix运算的函数。 我想要做的是以下几点:
li(3,5)
然后:
[1 , 3 , 5 ] * [1 3 5]
所以结果是35
。 如你所见,我把1的值加到matrix上,然后乘以它的转置。
我的代码是以下,但我收到消息"User-Defined Type Not Defined error"
Public Function li(a As float, b As float) As Variant Dim mat(1 To 1, 1 To 3) As Variant Dim re As Variant mat(1, 1) = 1 mat(1, 2) = a mat(1, 3) = b re = WorksheetFunction.MMult(mat, WorksheetFunction.Transpose(mat)) li = re End Function
我使用Excel 2007。
那么,我的代码有什么问题?
VBA中没有内置types的float
。 对于单精度浮点数使用Single
,对于双精度浮点数使用Double
。
我认为在一定程度上你的代码是“重塑”标准function(在这方面没有任何伤害),A1中有1
3
,B1中有1 5
,C1中有5
:
{=MMULT(A1:C1,TRANSPOSE(A1:C1))}
返回35
。