Board logo

標題: [發問] array怎麼計算平均、標準差? [打印本頁]

作者: acdx    時間: 2013-7-26 15:18     標題: array怎麼計算平均、標準差?

我有個 array, 我想要用迴圈去算Array(0),Array(1)...,Array(n)的 STDEV及AVERAGE
WorksheetFunction.StDev(引數1, 引數2)
我不知怎麼把 array 的值餵給他,所以我把 array先印到某一個 Sheet 上,再用
WorksheetFunction.StDev(Range("Sheet").Cells(),("Sheet").Cells())
去抓值
這樣要先印出來再抓值有點慢
請問怎麼寫才能直接餵引數給 StDev 嗎?
--------------------------------
程式如下
For i = 0 To tRow - 1
MaxL(i) = Application.Max(Cells(StartRow + i, 3), Cells(StartRow + i, 4))   ' Loundness
MaxT(i) = Application.Max(Cells(StartRow + i, 6), Cells(StartRow + i, 7))   ' Tonality
Next i
作者: GBKEE    時間: 2013-7-26 15:37

回復 1# acdx
  1. Ar(1) = Array(50, 60, 70, 80)
  2.     Ar(2) = Array(150, 260, 370, 480)
  3.     Maxl = Application.StDev(Ar(1), Ar(2))
複製代碼

作者: acdx    時間: 2013-7-26 15:56

回復 2# GBKEE
G大
我的矩陣大小是變數MaxL(i)=MaxL(0),MaxL(1),MaxL(2),...,MaxL(tRow - 1)
                                    MaxT(i)=MaxT(0),MaxT(1),MaxT(2),...,MaxT(tRow-1)
tRow每次的值可能都會不一樣
該如何求MaxL(0),MaxL(1),MaxL(2),...,MaxL(tRow - 1)的表準差/平均值
及MaxT(0),MaxT(1),MaxT(2),...,MaxT(tRow-1)的表準差/平均值
作者: GBKEE    時間: 2013-7-26 16:49

回復 3# acdx
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar(1 To 2), Maxl, Maxt, tRow
  4.     Ar(1) = Array(6, 7, 5, 8, 9, 1, 2, 0, 22, 28)
  5.     Ar(2) = Array(16, 17, 25, 18, 29, 31, 22, 20)
  6.     For tRow = 1 To UBound(Ar(1))
  7.         Maxl = Ar(1)
  8.         Maxt = Ar(2)
  9.         ReDim Preserve Maxl(tRow)                   '元素數 -> 0 TO tRow = tRow+1
  10.         ReDim Preserve Maxt(tRow)
  11.              'Preserve 選擇性引數。當改變原有陣列最後一維的大小時,仍然保有原來的資料的關鍵字。
  12.         Cells(tRow, "A") = Application.StDev(Maxl) / Application.Average(Maxl)
  13.         Cells(tRow, "B") = Application.StDev(Maxt) / Application.Average(Maxt)
  14.     Next   
  15. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)