全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
1303 6
2013-06-17

比如我想算 x = inverse(A)*b, VBA中该怎样打?



1.png


这是我的代码, 但不成功, 求高手指点:

Sub a()
WorkSheet(1).Cells(1, 6) = "x"
WorkSheet(1).Range("F2:F3").Value = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse("A2:B3"), "D2:D3")
End Sub



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-6-18 09:51:58
怎么没人理我?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-18 22:04:15
controlpanel 发表于 2013-6-18 13:29
Sub a()
Worksheets(1).Cells(1, 6) = "x"
Worksheets(1).[F2:F3] = WorksheetFunction.MMult(WorksheetF ...
下面这个又怎么不行?

Function abc(x As Range)
Dim m As Integer, n As Integer
m = x.Rows.Count
n = x.Columns.Count

Dim matrix()
Redim matrix(1 To m, 1 To n)
For i = 1 To m
For j = 1 To n
matrix(i, j) = x(i, j)
Next j
Next i

Dim sum As Single
sum = Application.WorksheetFunction.sum(matrix)

Dim norm()
ReDim norm(1 To m, 1 To n)
For i = 1 To m
For j = 1 To n
norm(i, j) = matrix(i, j) / sum                <==REPORTING ERROR HERE!!!
Next i
Next j

abc = norm
End Function
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-24 20:48:04
controlpanel 发表于 2013-6-19 11:37
Next i
Next j
顺序倒了
How about the following one?
Actually, x = A*B*Transpose(A) should be a scalar, but I can't do something likes 5*x, x^2, sin(x), ...
What is the problem?

1.png


Sub a()
x = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MMult(Range("a2:b2"), Range("D2:E3")), Application.WorksheetFunction.Transpose(Range("A2:b2")))
Range("a5") = Sqr(x)       <-- Reporting Error Here!!!
End Sub


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群