<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />この初心者向けの質問については、事前に申し訳ありません。
私は単純に1つのxと1つのy列を持っています。スクリプトを使って、テーブルを取得しようとしています。
- 最大y(これで問題ない)
- 最大値付近の定義された範囲内の平均
- 最大値yに対応するx値
おそらくそれは非常に簡単なスクリプトですが、私はそれを進めることができませんでした!
ご協力ありがとうございました!
それは完璧です、あなたの徹底的な答えをありがとうイアン!
このような何かがするでしょう。ただし、'LocMax()'は最初の最大値の位置を返すので、最大値が複数ある場合はさらに作業が必要になります。また、ウィンドウが切り捨てられている場合は、必要に応じて平均値の計算を調整することをお勧めします。
NamesDefaultToHere ( 1 ) ;
//データを作ります
dt = NewTable ( "XとY" 、
NewColumn ( "バツ" 、数値 、連続的 、式 ( ランダム正規 ())) 、
NewColumn ( "Y" 、数値 、連続的 、式 ( ランダム正規 ())) 、
AddRows ( 100 )
) ;
//データをベクトルにします
xVals = カラム ( dt 、 "バツ" ) << 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 ) ;
もし ( 右 > 今 ( yVals ) 、右 = 今 ( yVals )) ;
//ウィンドウ内の平均y値を計算します
y平均 = 平均 ( yVals [ 左 :: 右 ]) ;
//ログウィンドウに出力
ClearLog () ;
印刷する ( yMaxPos 、 yMax 、 xMax 、 winSize 、左 、右 、 y平均 ) ;