このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/3
#  【質問テンプレ】  
#  [1] 授業単元:画像処理学  
#  [2] 問題文(含コード&リンク):  
#    指定されたエクセルファイル(csv1)の中にあるデータを読み込み  
#    各列ごとにそれぞれのデータに対し[0,1]区間に正規化し  
#    別のエクセルファイル(csv2)として出力せよ. 
#    正規化されたエクセルファイルの中にあるデータを読み込み  
#    そのデータをそれぞれx軸の値として  
#    y = x + a  の式との交点であるy軸の値をそれぞれ  
#    別のエクセルファイルとして出力(csv3)せよ.  
#    a の値は -1〜1 までの値を0.5刻みでランダムにとり  
#    同じ行では同じ関数を使うものとする.  
#    その後そのプログラムに加え  
#    各行に対し3つずつそれぞれランダムにaを決定した関数との接点を求め出力する.  
#    また6列目に使用したaの値をa1,a2,a3という形で出力(csv4)せよ. 
#  

'指定されたエクセルファイル(csv1)の中にあるデータを読み込み各列ごとにそれぞれのデータに対し[0,1]区間に正規化し別のエクセルファイル(csv2)として出力する'(_指定されたCSVファイル,_別のCSVファイル) :-
         get_split_lines(_指定されたCSVファイル,[' ',','],LL1),
         転置(LL1,LL2),
         '各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'(LL2,LL3),
         転置(LL3,LL4),
         '別のエクセルファイル(csv2)として出力する'(LL4,_別のCSVファイル).

'各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'([],[]) :- !.
'各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'([L1|R1],[L2|R2]) :-
        相加平均(L1,_相加平均),
        標準偏差(L1,_標準偏差),
        '各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'(L1,_相加平均,_標準偏差,L2),
        '各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'(R1,R2).

'各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'([A|R1],_相加平均,_標準偏差,[B|R2]) :-
        B is ( A - _相加平均) / _標準偏差,
        '各列ごとにそれぞれのデータに対し[0,1]区間に正規化し'(R1,_相加平均,_標準偏差,R2).

'別のエクセルファイル(csv2)として出力する'(_別のCSVファイル,LL) :-
        open(_別のCSVファイル,write,Outstream),
        'CSVファイルとして出力する'(Outstream,LL),
        close(Outstream).

'CSVファイルとして出力する'(Outstream,[]) :- !.
'CSVファイルとして出力する'(Outstream,[L|R]) :-
        concat_atom(L,',',S),
        write_formatted(Outstream,'%t\n',[S]),
        'CSVファイルとして出力する'(Outstream,R).