相違点の完全なリストを提供するのではなく、この問題に関する私の見解を示します。
提供された wiki ページを注意深く読むと、「Octave は両方をサポートしていますが、MATLAB は最初のものが必要です」などのような文をよく目にします。これは、Octave の開発者が Octave 構文を MATLABよりも「優れた」ものにしようとしていることを示しています。
この態度は、Octave の目的を完全に失わせます。Octave の背後にあるアイデアは、m-code を実行するためのオープン ソースの代替手段を用意することです (または、以下のコメントを参照してください) 。それが「より良い」ものになろうとする場合、それは異なるものになろうとするものであり、これはほとんどの人がそれを使用する理由と一致しません。私の経験では、MATLAB で開発されたものを実行しても、非常に単純で非常に短いものを除いて、一度に動作することは決してありません。最初から書き直さないでください。これがどのように優れているか、本当にわかりません...
また、Octave を学習すると、MATLAB では許可されていない、Octave で許可されている構文がたくさんあります。意味 -- 多くの場合、Octave で記述されたコードは、多数の変換を行わないと MATLAB で機能しません。逆に互換性がありません!
私は続けることができます: MathWorks には MATLAB 用の多くのツールボックスがあり、Octave には実際には同等のものがないSimulinkとその関連製品があります (はい、すべての費用を支払う必要があります。しかし、多くの場合、雇用主/学校はとにかくそれを行います。 、少なくとも存在します)、いくつかの業界標準、テスト ツール、検証ツール、要件管理システム、レポート生成、はるかに大きなコミュニティとユーザー ベースなどへの準拠が証明されています。MATLAB は単なるもっと大きなものの小さな部分。オクターブは...ただのオクターブです。
だから、私のアドバイス:
- 学校が MATLAB の費用を負担しているかどうかを確認してください。多くの場合、彼らはそうします。
- そうでない場合、そしてお金をかき集めることができる場合は、MATLAB を購入し、適切に使用する方法を学んでください。長い目で見れば、それはより良い決断です。
- 本当にお金がもらえない場合は、Octave を使用しますが、 MATLAB の構文を学び、Octave のみの構文には近づかないでください。(ノートを参照してください)
この最後のポイントはなぜですか?科学では、完全に MATLAB で記述された大規模なコード ベースがよくあるためです。教授、エンジニア、学生、プロのコーダーなど、MATLAB の複雑で身の毛もよだつ詳細をすべて知っている人はたくさんいますが、Octave についてはあまり知りません。
新しい仕事に就いて、新しいオフィスの全員がスペイン語を話している場合、スペイン語を話せない/好きではないという理由だけで、全員に英語を話し始めるように要求するのはちょっと生意気です. MATLAB や Octave と同じです。
注: Octave は、(Octave の起動時に --traditional フラグを含めることにより) 「従来のモード」で実行できます。これにより、特定の Octave のみの構文が使用されるとエラーが発生します。