ファイルから1行ずつ読みたい場合

 stacksize("max")でメモリを最大限確保した上で、Scilabの32bit環境だとrand(1,48000*60*13);だと通り、13を14にするとスタックサイズを超えてしまう。つまり48kHzサンプリングで13分位の配列ということになる。64bit環境では60分ちょっとだった。もしこれにフィルターをかけるとしたら、b=フィルター(a)のようになるから、扱えるのは少なくとも半分になってしまう。こまめに不要な配列をクリアすれば64bit環境なら20分位の48kHzサンプリングデータなら大丈夫そう。
 スタックサイズの限界まで使っても、メモリの使用量は64bit環境で2GB程度。やはりメモリ管理が改善されるというScilab6が待ち遠しい。

  matlabクローンにはScilabの他にOctaveは知っていたけどFreeMatというのが有るのを知るが、日本語の情報が少ないようだ。Scilabが日本では一番情報が入りやすいように思える。matlabも使う人ならOctaveの方が良いんだろう。

 Scilabcsvファイルを読むのはよくread関数を使うが、これだとcsvの内容を一気に配列に入れてしまうので、上記のメモリ問題も含めて1行ずつ読みたい場合があるので作ってみた。

[fd,err]=mopen("d:\test.csv");
while meof(fd)==0 do
a=mgetl(fd,1)//ascii ファイルから行を読み取る
end
mclose(fd)