ミニチュアハウスをつくる!

プロによるミニチュアハウス製作ブログ-1/87-1/160サイズ-

ソートする

本日は、早朝は曇り。だんだん晴れて暑くなってくる。

禁断のEmacsをちょいとやってしまった。。。。

f:id:lis2016zz:20170712144802p:plain

Emacsでソート

xyzの座標値があって、zの値に着目して、例えば0から順番に座標値を並べなおしたい場合がたまにある(私の場合)地形関連のコンター座標とか。。。

EmacsLispをつかってチャレンジしてみたが、何だか難も無くうまい事完成。

土木関連とか数理系にも、応用は広そう。。。

数値情報を分かりやすいようにいじくれると作業は楽になったりする。

下の自作EmacsLispはコマンド実行して、Enterで単に数値の大きい順にソートし、xyzなどの座標群をソートする場合z値の大きさの順番にするなら3を入力してエンターですぱ~っとデータがソートされる。yなら2。。。試してみる場合は自己責任にてどうぞ。

  (defun sor-nume1 () 
    (interactive) 
    (let (field) 
      (if (region-active-p) 
          (progn (setq field (read-string " 通常ソート:Enter。何番目列?: " )) 
                 (if (equal field "") 
                     (setq field 0) 
                   (setq field (string-to-number field))) 
                 (sort-numeric-fields field (region-beginning) (region-end))) 
        (message "範囲指定してください")))) 

下記のようなxyzの3つの数値データがいろいろあった場合、上記ののコマンドでzの値の小さいものから並べるとするとzは3番目なので3を入力するとソートされる。

範囲指定して、コマンド実行すると。。。

12.3  56.3  10.0

5.1  3.6  0.0

19.3  56.3  12.0

8.0  9.2  0.0

30.2  50.2  10.0

30.2  50.2  17.0

3.0  100.3  0.0

19.0  56.3  10.0

ソート結果は以下、同じ高さ(z)の座標群で高さの低いもの順に簡単に並びかえられた。。。

5.1  3.6  0.0

8.0  9.2  0.0

3.0  100.3  0.0

12.3  56.3  10.0

30.2  50.2  10.0

19.0  56.3  10.0

19.3  56.3  12.0

12.3  56.3  15.0

30.2  50.2  17.0

Emacs、ホントいろんなことやれる。

 

ペンケム模型作品(Instagram)
PenkeM作品集

 

にほんブログ村 ハンドメイドブログ ミニチュアドールハウスへ にほんブログ村 鉄道ブログ 鉄道模型へ にほんブログ村 鉄道ブログ 鉄道模型 レイアウト製作(ストラクチャー)へ

広告を非表示にする