パッケージの説明
このページでは公開パッケージに関する説明を行っています。
(公開ページURL:http://www.nuee.nagoya-u.ac.jp/labs/plaene/koukai/purakaku85/)
■パッケージ概要
プラズマ・核融合学会誌2009年9-12月号(Vol.85 No.9-12)に連載された講座「流体乱流研究から診たプラズマ乱流データの解析」にて紹介される手法の一部+αを実行できる関数パッケージです。
本プログラム群は市販のソフトウェアMATLAB、またはオープンソースソフトウェアOctave(やFreeMat)での動作を想定しています。全ての関数はMATLAB付属の関数を参考に作成しており、あらかじめ用意されている関数と同じように使用することができます。
※以降、MATLAB/Octave使用に関する用語を以下のようにします。
- M-ファイル :拡張子.mのファイル
- スクリプト M-ファイル :実行文を含んだM-ファイル
- ファンクション M-ファイル :ユーザの定義した関数を実行するM-ファイル
- カレントディレクトリ :MATLAB/Octaveでユーザが現在いるディレクトリ
- サーチパス :関連ファイルを検索するディレクトリのパス
■パッケージ構成
本パッケージは以下の5つのディレクトリおよびファイルから構成されます。
- nagoya-u :多数のファンクション M-ファイルを含むディレクトリ
- startup.m:MATLAB/Octave起動時に実行されるスクリプト M-ファイル
- tips_sample.m :複数の解析関数の使い方をまとめたチップス集
- main_sample.m :複数の関数を実行できるデモ用解析のM-ファイル(旧)
- readme.html :各種説明のHTMLファイル(このページ)
- help :readme.htmlのリンク先HTMLファイルを含むディレクトリ
- vsfree :フリーソフト使用時のエラー対策関数パッケージ
ここでnagoya-uディレクトリには以下の関数ファイル(M-ファイル)が含まれます。
■導入方法
ここではnagoya-uディレクトリに含まれる全ての関数ファイルを利用できる環境を整える方法について解説します。なお、お使いのPCにMATLAB(もしくはOctave)が既にインストールされていることを想定しています。
※使用者が既にMATLAB/Octaveによりユーザー定義ファイルを作成している場合には、nagoya-uディレクトリ内に重複するファイル名が無いことを確認してください。同一のものが含まれる場合、カレントディレクトリ内のM-ファイルの実行が優先されます。
【使用言語がMATLABのとき】
MATLABの機能として、startup.mと名前のつくM-ファイルがホームディレクトリ(MALTAB起動時にpwdコマンドで表示されるディレクトリ)上にある場合には、MATLAB起動とともに「startup.m」の名前のファイルが自動で実行されるようになっています。これを利用してnagoya-uディレクトリとそのサブディレクトリをサーチパスに追加することで、全関数の利用環境を整えます。
※サーチパスに追加する、とは、簡略には、カレントディレクトリがどこであっても、サーチパスに追加したディレクトリ内の関数を利用できるようにする、ということです。つまり通常のMATLAB内部関数と同様にnagoya-uディレクトリ内の関数が利用できる環境を整えます。
パッケージに含まれるstartup.mは、カレントディレクトリに含まれる"nagoya-u"と名前のついたディレクトリおよびそのサブディレクトリをサーチパスに追加するよう記述されています。
したがって、ユーザーが実際に行う操作としては、エクスプローラ上でstartup.mおよびnagoya-uディレクトリをMATLABホームディレクトリに移動させることだけです。
※既にstartup.mを作成している場合は、既存のstartup.mの文中にダウンロードしたstartup.m内の内容を書き足してください。
※startup.mの変数adddirに他のディレクトリ名も代入することで、複数のディレクトリをサーチパスに追加することができます。
※使用言語がMATLABのとき、startup.mによりグラフィックスのデフォルトプロパティを変更する記述を加えています。
【使用言語がOctaveのとき】
Octaveでは、MATLABと異なりstartup.mが自動実行されません。またホームディレクトリが深い階層に設定されている場合があります。そこでホームディレクトリを浅めの階層(例えば'C:\work')に設定し、さらに自動でstartup.mを実行させる環境を整えます。
Windowsにおけるパッケージの導入方法
※OctaveのバージョンやOS・CPUの種類によっては、プログラムの一部が動作しないことがあるようです。確認済みのものとして、Octaveを起動して → error(nargchk(1,3,2)) ← を書き込みエンターキーを入力したときエラーが返される(MATLABではエラーは表示されない)場合があります。このときには、本関数パッケージの実行時は常にエラーが表示されることになります。Octave側のバグのようなので、以下に従いnargchk関数を修正してください。あるいはOctave内部関数の変更を行いたくない場合には、関数パッケージのプログラム文上部にあるerror(nargchk( ))の行を%(パーセント)でコメントアウトして動作を確認してください。
1. edit nargchk と入力 / 2. nargchkの出力引数を確認(例えば function msg=nargchk(...) とプログラム文中に書かれていた場合は'msg') / 3. endfunction と書かれた行の一段上に → if isempty(msg), msg=[]; end ← を追加(このときmsgは2で確認した出力引数) / 4. nargchk関数を上書き保存 / 5. Octaveを一旦終了する
※MATLABとの併用の場合には、上記浅めの階層をMATLABホームディレクトリに設定すると、関数ファイルを共有できます。
※function_120111以降の修正点
フリーソフト(Octave、FreeMat)では一部のMATLAB組み込み関数が利用できず、本プログラムパッケージ使用時にエラーが発生する事例が見受けられました。そのため、MATLABと関数名は同一で、最低限の機能を持たせた複数のプログラムをvsfreeディレクトリ内に梱包しました。startup.mの内部では使用ソフトがMATLABであるか否かを判別し、MATLABで無い場合には、vsfreeディレクトリをサーチパスに追加する機能を加えています。
■削除方法
上記の導入時に変更した箇所があれば元に戻し、削除してください。
■動作環境
Windows環境のMATLABにて正常動作を確認しています。OctaveおよびFreeMatでは、バージョンにより一部関数が動かない可能性があります。
なお、MATLABはWindows、Mac、UNIXにてインディビジュアルライセンス、コンカレントライセンスで販売されています。安価な学生版もあります。
■謝辞
解析手法の学習、および本プログラムの作成にあたり、ご教授下さいました名古屋大学大学院工学研究科准教授(現、教授)、辻義之博士に深く感謝いたします。
プラズマデータの取得、および手法の適用にあたり、ご指導とご教鞭を賜りました名古屋大学大学院工学研究科教授、大野哲靖博士に謹んで感謝いたします。
プラズマ・核融合学会誌への講座連載にあたり、ご助言をいただきました兵庫県立大学工学研究科助教、菊池祐介博士に感謝いたします。
■著作権・免責など
本関数パッケージはフリーですが、著作権は作者の田中宏彦が有します。
公開にあたり、プログラムの多くを汎用性を高める目的から新規に作成しています。それぞれデバッグ、出力結果の確認などはしていますが、全てのプログラムの正常動作、出力結果の保証はできません。可能な限り、利用者各位において関数の内容、および出力結果の確認をされることをお勧めします。
上記のことから、この関数パッケージを利用して生じたいかなる損害・障害も当方は責任を負いません。あらかじめご了承ください。
改変やオリジナル形式での再配布は、自由に行うことができます。改変後の再配布は、別途作者に了解を得てください。
プログラムは日々改良を行っています。最新版は、名古屋大学大学院工学研究科
電気工学専攻の公開用ページ(このページ)または大野研究室の
田中宏彦のページに掲載しています。
プログラムに関するご意見やご質問、問題などありましたら下記のメールアドレスへご連絡をお願いいたします。
⇒h-tanaka@ees.nagoya-u.ac.jp (@を半角にしてください)
最後に、本プログラムがプラズマ乱流解析の進展に資することを期待します。
■更新履歴
2019/03/04 function_190304のWEB公開
2015/10/07 function_151007のWEB公開
2015/05/13 function_150513のWEB公開(MOMENT関数バグ修正)
2012/12/06 function_121206のWEB公開
2012/06/21 function_120621のWEB公開
2012/01/11 function_120111のWEB公開
2011/04/14 function_110414のWEB公開(fluctuation,fluctlevel,skewness,flatness関数をそれぞれfluctfun,fluctlevelfun,skewfun,flatfunに名称変更、slicegetをconvenientディレクトリに移動)
2010/11/07 function_101107のWEB公開
2010/05/26 function_100526のWEB公開(CFFTFUN関数修正)
2010/03/31 function_100331のWEB公開
2010/02/20 function_100220のWEB公開
2009/11/19 function_091119のWEB公開
2009/06/16 関数パッケージの作成開始