2014年9月7日日曜日

MatlabプログラムをScilabに変換、再編集するに当たって

Scilabのコードは大雑把な言い方ですが、90%程度Matlabと同じです。コツさえつかめれば、Matlabの簡単なコードをScilab上で動かすことはさほど時間が掛かりません。

もちろん複雑なコードはそれなりに時間が掛かったり、落とし穴があって悩んだりしますが。

ポイントは次の通りです。私は付属のSciNotesをエディタとして使っていますが、Find & Replaceが活躍します。




1.    コメント行は’%’でなく、’//’に変換します
(C/C++の’/*-----*/’ように複数行コメントアウトするやり方は見つかっていません。もしご存知の方がいれば教えて下さい)

2.    円周率について、Matlabの'pi'は’%pi’に変換します

3.    Zeros あるいはonesで配列要素を生成できますが、(M, 1)の配列を生成する際に注意が必要です。
例えば(5,1)の配列において、利用したMatlabではzeros(5)となっていたものをScilabではzeros(5,1)とする必要がありました。

4.    Graphic関連(グラフ作成)関連のコマンドの名称の他、軸などのプロパティのハンドリングが多くの場合に異なります。
ただし似た機能のものはScilabでもあるのでヘルプ等を参照して見つけてください。
グラフの軸などのプロパティのハンドリングについてもヘルプにありますが、このサイトでも簡単に紹介します。
meshや axis([3*ds L -2 2])、 grid onなど

5.    関数やコマンドの引数の違いもヘルプで調べて、Scilabに合うよう直してください。例えば常微分方程式のソルバーとしてodeという関数がありますが、関数名は同じですが引数の与え方が異なります。これはGraphic関連のコマンドでも同様です。

6.    その他にも両者でコマンド名、関数名が異なるものも多々あり、これもヘルプ等で調べます。例えばMatlabのint2strに対応するScilabのコ マンドは、私はまだ見つけていません(Ver5.5)。また剰余(x%y)の関数はScilabではmodulo(x,y)となります。
  

この一連の学習を通して、「学び」について思いついたことをまとめました。
学びにおける「教科書や問題集からの自立」 ― いわゆる 「守・破・離」
 



0 件のコメント:

コメントを投稿