1-1 係数の変更
例1:x^2 + b*x のグラフ
係数 b を -4 から 4 まで、2 ずつ増やして 5 本の2次曲線を作成します。
:for b, -4, 4, 2 { :draw2DGraphFunc x, AUTO, AUTO, 1001 [ X = x Y = x^2 + b*x ] }
【実行結果】
例2:x^2 + b*x の極小値
係数 b を -4 から 4 まで、2 ずつ増やして 5 本の2次曲線の極小値を求めます。
:for b, -4, 4, 2 { :getValMinimize x [ x^2 + b*x ] }
【実行結果】
! b=-4; > x = 2 > -4 ! b=-2; > x = 1 > -1 ! b=0; > x = 0 > 0 ! b=2; > x = -1 > -1 ! b=4; > x = -2 > -4
2-1 複数ファイルの処理
例1:特定カラムの集計
カレントフォルダにある全ての CSV ファイルに対して、第2カラムの2行目からの合計を集計して "total.csv" というファイルに保存します。
t.total = t.0; t.total:=add_col["合計"]; :foreach $file, ::glob "*.csv" { :readData $file; t.total{合計}[$file] = ::sum V[1][1]; # メモリ消費が気にならなければ、この2行は不要です。 :setDataSheetDel S[@s]; :setDataUndoClear; } :setDataNew; T[0][0] = t.total; :saveData "total.csv";
例2:各カラムの加算
カレントフォルダにあるファイル名が 'b' から始まる全ての CSV ファイルに対して、2行目から全ての行で第1カラムと第2カラムを加算して第4カラムに書込み、ファイル名に "_a" を加えて保存します。
:foreach $file, ::glob "b*.csv" { :readData $file; $D[3][0] = "合計"; :for i, 1, ::row_size 0 - 1 { D[3][i] = D[0][i] + D[1][i]; } :saveData ::insert[$file, -4, "_a"]; # メモリ消費が気にならなければ、この2行は不要です。 :setDataSheetDel S[@s]; :setDataUndoClear; }
3-1 分類してプロット
例1:特定列の条件によってデータをプロット
第0列を x、第1列を y として、データウィンドウの第2列の値によって複数のプロットを作成します 。
:for a, 0, 10, 2, ASN { :draw2DGraph x, y, i, 1, ::row_size 0, 1, ASN { :if^ a <= D[2][i] && D[2][i] < a+2 { :continue; } x = D[0][i]; y = D[1][i]; } :set2DPlotLineWidth G[@g][@p], 0; :set2DPlotMarkerSize G[@g][@p], 2; }