FC2ブログ

GSL Shell コード・テンプレート(改)

2017-12-01 :  PCクリニック
先月下旬(2017-11-22)の記事「Microlight - a very compact Lua utilities module」と、
その後(2017-11-27)の記事「Microlight 学習:split 関数
に対応して、
先月初め(2017-11-08)の記事「GSL Shell コード・テンプレート」で書いた、
Code Template「Code_Template.gsl」を改訂した。


プログラム「Code_Template_Rev.gsl」:
----- Code_Template.gsl     <== プログラムの名前

--[[
   プログラムの仕様・コメント 等々

  プログラム・ファイルのコード:'Shift-JIS'

  コマンドライン引数:
   arg 引数リスト    #arg 引数の個数
arg[0] 当プログラム名

]]
--======================
require'cv2_a' -- 'OpenCV' 使用: cv2.cvLoadImageM 等々
require'gsl_a' -- 'GSL' 使用: gsl.gsl_rng_get 等々
gp = require'gnuplot' -- 'gnuplot' 使用: gp.Plot 等々
require'pl' -- 'Penlight'使用: path.currentdir 等々
require'ml'.import() -- 'Microlight' : split、range 等々?

require'winman' -- 'afxLua/winman'使用: winman.send 等々
Iup = require'IUP' -- 'IUP' 使用: Iup.Open 等々

lfs = require'lfs' -- 'LFS' 使用: lfs.attributes 等々
--- 'Penlight' 経由で 'lfs' を使いたいなら
_ = path.currentdir()

--==================================
-- use'math' -- 'math.log' を 'log' と モジュール名の省略
-- use'bit' -- 'bit.band' を 'band' ※  これは使用注意

f = |x| x^2 - 1 --=== function f(x) return x^2-1 end

--==================================

----- ディレクトリ内ファイル一覧取得:
require'pl'
f_list = dir.getfiles( Dir )


----- ファイル(不)存在チェック:
require'afx'
if not afx.fileexists( f ) then
-- ~
end


-- D&D でファイル名取得:
require'pl'
Dir, Fname = path.splitpath( arg[1] )
lfs.chdir( Dir ) -- これ必要?


----- 入力テキストファイルについて、
-- ファイル全体を一括で(文字列として)読み込む:
require'pl'
wstr = file.read( 'hoge.txt' )
----- 又は、
require'ml'.import()
wstr = readfile( 'hoge.txt' )

-- ファイル全体を行毎の文字列配列で読み込む:
require'pl'
w = utils.readlines( 'hoge.txt' )
-- 更に、一行分を分割(空白区切り):
v = stringx.split(w[i])
----- 又は、
require'ml'.import()
v = split(w[i])


-- CSVファイル全体をテーブルとして読み込む:
t = csv.read( 'hoge.csv' )
-- 更に、数値のみなら行列に変換:
m = matrix.def( t )
----- 非数値データの行(テーブル要素)を除くには:
table.remove( t, 1 ) -- とかで。

----- 入力バイナリファイルについて、
-- ファイル全体を4バイト整数配列として読み込む:
IN=io.open('hoge','rb'); buf=IN:read('*a'); IN:close()
pt=ffi.cast('int32_t*',buf)


----- 出力テキストファイルについて、
-- 'fprintf' で書き出し:
require'pl'; OT=io.open('f.txt','w')
utils.fprintf( OT, ' %g %d %s\n' , floatv, intv, str )
OT:close()

--===============================
----- 文字列が数値を表すか?判定
if tonumber( str ) ~= nil then
-- ~
end

--===============================

----- Python の 'range'
require'pl'

for k in seq.range( 0, n-1 ) do -- for k in range( n ) :
-- ~ -- # ~
end -- # 無し

for k in seq.range( i, j-1 ) do -- for k in range( i, j ) :
-- ~ -- # ~
end -- # 無し

----- 又は、
require'ml'.import()
for k in range( 0, n-1 ) do
-- ~
end


plc = require'pl.comprehension'.new()
T = plc('x for x=1,5')() -- T は { 1, 2, 3, 4, 5 }
--- plc 'x for x=1,5' () -- これでも可
V = matrix.vec( plc'x for x=1,5'() ) -- これで 'matrix'ベクトル


--===============================
----- 三角関数 逆三角関数
-- sin、cos、tan、・・・・・ asin、acos、atan、atan2
------------------ rad、deg

----- 特殊関数
-- sf.fact(n) ・・・ 階乗(factorial) n!
-- sf.gamma(x)・・・ ガンマ関数(gamma function)
-- x は正数。 use:real Lanczos method ( ランチョス法 )


--===============================
--[[ ----- 過去記事/備忘録 -----

備忘録:(2017-04-08)記事
「Lua 言語仕様:備忘録(忘れやすい事)4言語対比表」
 http://jn1inl.blog77.fc2.com/blog-entry-2523.html
「H29-03-04_Lua言語仕様_備忘録.html」H29-03-22 /_GSL/

関数フィッティング:(2017-04-05)記事
「GSL Shell 学習:Fitting サブ(改)」
 http://jn1inl.blog77.fc2.com/blog-entry-2521.html
「SUB_GSL_Fit.lua」H28-02-04 /_GSL/H28-12-10_FitGSL/

非線形1変数方程式の求解:(2017-06-21)記事
「GSL Shell:非線形1変数方程式の求解モジュール自作」
 http://jn1inl.blog77.fc2.com/blog-entry-2569.html
「NL_1var_Rev.gsl」H28-05-07 /_GSL_tcc/H29-05-06_Solve_Newton/

非線形2変数方程式の求解:(2017-06-24)記事
「GSL Shell:非線形2変数方程式の求解モジュール自作」
 http://jn1inl.blog77.fc2.com/blog-entry-2571.html
「NL_2var_Rev2.gsl」H28-05-11 /_GSL_tcc/H29-05-06_Solve_Newton/

スプライン補間:(2016-09-19)記事
「GSL Shell 学習:スプライン補間」
 http://jn1inl.blog77.fc2.com/blog-entry-2404.html
「GDT_Spline.gsl」H28-08-12 /_GSL/H28-08-12_Spline/

'OpenCV' サンプルコード:(2017-07-30)記事
「OpenCV:cvFindContours 正常に出来た」
 http://jn1inl.blog77.fc2.com/blog-entry-2592.html
「cvFitEllipse2_7.gsl」H29-06-28 /_GSL_CV/H29-06-27_FindContours_FitEllipse2/

'GSL' サンプルコード:(2017-08-23)記事
「GSL 学習:配列要素の並び替え」
 http://jn1inl.blog77.fc2.com/blog-entry-2605.html
「gsl_sort.gsl」H29-07-17 /_GSL_gslib/H29-07-17_Sorting/

'gnuplot' 用モジュール定義:(2017-11-06)記事
「Lua & gnuplot:gnuplot モジュール改訂2」
 http://jn1inl.blog77.fc2.com/blog-entry-2638.html
「gnuplot.lua」H29-06-20 /_gnuplot/H29-06-20_gp_lua/

'IUP' サンプルコード:(2017-02-12)記事
「IUP で GUI アプリ:コード改訂」
 http://jn1inl.blog77.fc2.com/blog-entry-2486.html
「IUP_Exact_Dbl_Entou_Rev.gsl」H29-01-18 /_GSL/H29-01-18_IUP_3/

'afxLua' サンプルコード:'afx'、'cio'、'clipboard'、'winman'、'winreg'
検索「afxLua」
 http://jn1inl.blog77.fc2.com/?q=afxLua
]]
今回は、こんなところ?


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171120
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク