2013年7月22日月曜日

Octave入門その3:必須コマンド集

前回はOctaveのパッケージのインストール及び,パスの通し方を解説しました。

今回は,Octaveを使うにあたり,欠かすことのできないコマンドを紹介します。


・whos コマンド
現在作成されている変数の一覧を表示します。
また,それぞれの変数の行数,列数を確認することができます。












作成した,スカラー a,ベクトル b,マトリックス c  が表示されています。
Size の部分に「行数×列数」が,Class の部分に変数の型が(特に指定しない場合はdouble型になります),
Bytes の部分にその変数のメモリ上の容量(例えば b は,double型 8byte × 3 = 24byte)が示されています。

・clear コマンド
clear 変数名
で変数を消去することができます。









また,
clear all
とすると,全ての変数が消去されます。






全ての変数が消去され,変数が何も無いため,一覧が表示されません。

Octaveで,プログラムを連続して動かすと,前回動かした際に変数に格納された値を参照してしまい,エラーの原因となることがあります。
そのため,プログラムを作成する際には,プログラムの先頭に clear all を常に記述することをオススメします。


・tic(),toc() コマンド
プログラムの処理時間を測ることができます。
C言語では,time.hをインクルードして,あれやこれやしないといけませんが,Octaveだと,このコマンド一発で測れます。

具体的には,tic()とtoc()に挟まれた部分の処理時間を,toc()が秒単位で返します。





・zerosコマンド
まず,決められたサイズのマトリックスを用意し,計算結果を順次それに書き込んでいくという処理はよくあるパターンです。

決められたサイズのマトリックスを用意する際に便利なのが,zeros コマンドです。

test = zeros(行数,列数)

と実行すると,指定したサイズの,全ての要素が 0 のマトリックス(ここでは名前はtest)を得ることが出来ます。





同様なコマンドに,ones コマンドがあります。
こちらは,全ての要素が 1 となります。
たまに使います。


・save,loadコマンド
計算結果を保存したり,読み込む際に使用します。
最もシンプルな使い方は,
save 保存するファイル名 保存する変数
です。 

指定した変数が,指定したファイル名に,ヘッダ付きのascii形式で保存されます。
ascii形式なので,エディタで開くことができます。
ヘッダには,変数名や変数のサイズが記載されています。








このように保存したファイルは,load関数で読み込むことができます。
読み込んだ後の変数名は,保存した際の変数名と同じになります。











また,C言語やエディタなどの,他のプログラムで作成した,ヘッダなしのデータを読み込むこともできます。

エディタで作成したこのファイル(ファイル名は load_test.dat)を読み込ませます。











改行を挟むと,次の行と認識されます。
また,変数名は,ファイル名と同じになります。

この例では,ascii形式のファイルのみを扱いましたが,引数を与えることで,バイナリ形式のファイルも save,load することができます。


・csvwriteコマンド
カンマで区切られた csv形式で変数を保存することができます。

csv形式は Excel などで読み込むことができるので,Octave で計算を行い,結果を Excel に渡してグラフ化する際に便利です。

#Octave ももちろんグラフ描画機能がありますが,棒グラフやレーダーチャートを作成する場合は,Excel の方が容易かつ見た目が綺麗です。












・findコマンド
マトリックスの中の,指定した条件を満たす要素を見つけることができます。

返り値は,入力マトリックスを1行のベクターとした場合のインデックスとなっています。
そのため,find を単独で使用しても分かりづらいですが,下記のように使用すると,とても威力を発揮します。

まず,ランダムな値をもつマトリックスを作成します。

そして,find コマンドを用いて,このマトリックスの中の負の値を 0 に置きかえてみます。








このように,for 文や if 文を使うことなく,マトリックスに対して条件に基づく処理を行うことができる,とても重要なコマンドです。


・systemコマンド
Linux や Mac 上で Octave を起動している場合は,ls や mkdir などのシェルコマンドが使用出来ます。

プログラムの実行結果を保存するディレクトリを作成する際などに,活躍します。


また,返り値を利用することで,日時などを取得することができます。
これは,実行結果のファイル名を付ける際などによく用います。








このように,シェルコマンドの date から,日付を Octave 内に渡すことに成功しました。
#1つめの返り値 temp には,実行結果の状態(正常,エラーなど)が入ります。ここでは使用していません。

なお,system 関数から出てきた直後の日付文字列の末尾には,改行記号が付いているため,2つめの操作で末尾を除去しています。


・help コマンド
help コマンド名
と実行すると,使い方や,引数の順番が表示されます。


上記のコマンドはどれもとても便利です。
ぜひ活用してみてください。

0 件のコメント:

コメントを投稿