<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />提前抱歉這個新手問題:
我只有一個x和一個y列。使用腳本我試圖獲得一個表:
- 最大y(沒問題),
- 在最大值附近的定義範圍內的平均值,
- x值對應於最大y。
可能這是一個非常簡單的腳本,但我無法取得進展!
謝謝您的幫助!
像這樣的東西會做。但請注意'LocMax()'返回第一個最大值的位置,如果有多個最大值,則需要做更多的工作。此外,如果窗口被截斷,您可能希望根據您的需要調整均值的計算。
NamesDefaultToHere ( 1 ) ;
//製作一些數據
DT = newtable的 ( “X和Y” ,
NewColumn ( “X” ,數字 ,連續 ,式 ( RandomNormal ())) ,
NewColumn ( “Y” ,數字 ,連續 ,式 ( RandomNormal ())) ,
AddRows ( 100 )
) ;
//將數據導入向量
xVals = 柱 ( DT , “X” ) << getAsMatrix ;
yVals = 柱 ( DT , “Y” ) << getAsMatrix ;
//找到最大y值的位置
yMaxPos = LocMax ( yVals ) ;
//在此位置獲取相應的x和y值
YMAX = yVals [ yMaxPos ] ;
XMAX = xVals [ yMaxPos ] ;
//定義窗口大小(由奇數個值組成)
使用winsize = 9 ;
//計算窗口邊緣的位置
剩下 = yMaxPos - ( 使用winsize - 1 ) / 2 ;
對 = yMaxPos + ( 使用winsize - 1 ) / 2 ;
//確保邊緣在範圍內
如果 ( 剩下 < 1 ,剩下 = 1 ) ;
如果 ( 對 > NRow ( yVals ) ,對 = NRow ( yVals )) ;
//計算窗口中的平均y值
yMean = 意思 ( yVals [ 剩下 :: 對 ]) ;
//打印到日誌窗口
清除日誌 () ;
打印 ( yMaxPos , YMAX , XMAX ,使用winsize ,剩下 ,對 , yMean ) ;