• 起動時に実行したいコマンドがある時は
C:\Program Files\GNU Octave 2.1.50\opt\octave\share\octave\2.1.50\m\startup
にある
octaverc
にコマンドを追加しておく。
cd で起動時に作業フォルダに移動するなど。


  • Octave+Cygwin+シェルスクリプト
例:
入力 mat.txt
1.23456789012 2.0
3.0 4.0
5.0 6.0

mtest.mというmファイルを作る(※注 セミコロン(;)をつけるところにはつけないとmファイルでは通らないことが多い)
format long; #表示桁数(無くても計算精度は変わらないがあった方がいいよね)
load mat.txt; #mat.txtを読み込む
mat
argv #コマンドライン引数が入ってる
a=argv{1,1}
aa=sscanf(a,'%f') #文字列から数値に変換
mat=mat*aa
save ans.txt mat; #ans.txtに書き込む
exit #octave mtest.mと実行した場合はこれが無くても終了する

Cygwinで実行(mファイルがある場所で)
octave mtest.m 100

出力 ans.txt
# Created by Octave 2.1.50, Sat Sep 08 05:02:26 2007
# name: mat
# type: matrix
# rows: 3
# columns: 2
 123.456789012 200
 300 400
 500 600
と、入力ファイルの各要素に×100(コマンドライン引数)されて出力される例。
シェルスクリプトtest.shとかには普通に
octave -q mtest.m 100
とか書きましょう(-q:起動時のメッセージ省略)


  • 引数付きmファイルの例
例:wavファイルを読み込んでFFTする
fftwav.m
function fftwav (filename)
closeplot
wav=wavread(filename);
a=abs(fft(wav));
len=length(wav);
t=linspace(0,44100,len);
plot(t,a)
endfunction
実行例 >> fftwav("hoge.wav")


  • You have multiple copies of cygwin1.dll on your system.うんたらが出てきて起動できなくなった
octave.exeと同じ場所にあるcygwin1.dllをリネームしちゃえ。
Cygwinからじゃなくてアイコンダブルクリックで起動すると今度はcygwin1.dllが無い!って怒られる。
最終更新:2007年12月04日 18:56