Octaveを使用してMATLABプログラミングを学習することはできますか?


23

私は自分でいくつかの研究/分析を行うことができ、またオンラインで見つけたMATLABスクリプトなどを研究/修正できるようにMATLABプログラミングを学びたいです。

ただし、問題は、MATLABを購入する余裕がないことです。私が聞いたところによると、GNU OctaveはまったくMATLAB互換です。しかし、Octaveの課題は、ドキュメントが非常に少ないことです。

そのため、MATLABは非常に高価です(-ve)が、多くの優れたドキュメント、チュートリアル、およびオンラインスクリプト(+)があり、Octaveは(理解できるように)包括的なドキュメントなどがなくても(ビールのように)無料です。

Octaveをダウンロードしてインストールすることを考えていますが、MATLABドキュメント(およびスクリプト)を使用して作業を進めています。OctaveとMATLABにはいくつかの違いがあることを認識しています-私が解決しようとしているのは、その違いが(Octaveを使用してMATLABを学習する)努力を妨げるほど大きいかどうかです。

建設的なフィードバックを歓迎します。


3
ようこそ、ホムンクルス。私たちは生後2か月未満であり、まだ多くのタグがありません。オクターブタグを追加しました。
デビッドケッチャソン

目的が計算ソフトウェアを個人使用に使用することだけである場合の別のオプションはMathematicaです。完全な完全版は、300ドル未満の個人使用が可能です。これが予算の範囲内かどうかはわかりません。しかし、これで得られるもの(完全な商用バージョンと同じバージョン)については、それが価値があると思います。注:学生の場合は、MatlabとMathematicaもほぼ同じ価格で利用できます。
ナセル

1
一言で言えば、はい。言語間の違いはごくわずかです。Matlabのドキュメントは、Mathworks.com(Matlabのメーカー)からインターネットで無料で入手できます。見逃してしまう主なものは、MatlabのGUIです。Octaveに適したGUIを見つけるのは困難です。Octaveの開発バージョンにはGUIがありますが、インストールが困難です。outsch.org/2011/01/29/qtoctave-0-10-1-for-windowsで入手したQtOctaveをインストールしました。起動時に常にエラーメッセージが表示され、Octaveを完全に強制終了しないとプロセスを終了できないことを除いて、正常に機能します。私が使用してメモ帳++ ...
ステファン・スミス

... QtOctaveのエディターの代わりに、より良く機能するようです。もう1つは、OctaveとMatlabの違いなど、無料のWebサイトで広範囲に文書化されています。
ステファンスミス

コメントするほどの評判がないので、受け入れられた答えに「もちろん、MATLABの機能があります(特にツールボックスにはありますが、Octaveにはありません)」という文を完全に追加したいと思います。違う。OctaveにはOctave-forgeに豊富なパッケージセットがあり、Matlabのこれまで必要だったすべてのパッケージ機能が含まれています(医療画像の画像処理と最適化に取り組んでおり、かなりの数のツールボックス/パッケージが必要です)。また、受け入れられた回答は、質問者が書いたコードがラボや
個人

回答:


24

免責事項:誰かが私が尋ねた質問に答えるのではなく、私がすべきだと思うことを私に言わせようとするとイライラすることがあります。しかし、私はリスクを取って、あなたに代わるものを提案するつもりです。

Pythonの科学計算パッケージnumpymatplotlib、およびscipyを確認することをお勧めします。一緒に、それらはMATLABのコア機能のほとんどを提供します(場合によってはMATLAB以上のものを提供します)。彼らは無料でオープンソースであり、今日ではOctaveよりも幅広いユーザーベースを持っているかもしれません。Pythonの科学コンピューティングインフラストラクチャの多くはEnthought Inc.によってサポートされています。無料のEnthought Python Distributionをインストールすることをお勧めします。EnthoughtPython Distributionには、3つ以上のパッケージがすべて含まれています。

もちろん、PythonにはないMATLABの機能(特にツールボックスにはありますが、Octaveにはありません)があります。しかし、私はPythonをほとんどの仕事で低レベル言語と組み合わせて使用​​し、MATLABとほぼ同じくらい便利な言語でプログラミングし、MATLABにない便利なパッケージのホストとインターフェイスし、スーパーコンピューターでも同じ読みやすいコード。

編集:Continuum AnalyticsのAnaconda Pythonディストリビューションを試してみることもできます。上記のすべてのパッケージなどを含む無料版があります。


7
Homunculusは、特に仕事のためにMATLABを学習する必要があるため、MATLABを学習するか、科学的計算を行うためにMATLABを学習するかによって異なります。その場合、財政的な制約を考えるとPythonの方が適しています。
ジェフオックスベリー

3
@DavidKetcheson:私は実際にnumpyとmatplotlibを使用しています(Pythonに精通しているため)。しかし、私は多くのMATLABコードに出くわし続けているので、利用可能なMATLABスクリプトなどから(ライセンス料を支払わずに)学びたいと思っています。それに加えて、MATLABプログラミングを私の頭の中の余分な羽毛として持つことは常に良いことです-だから、バックドアを介してMATLABを学習することを考えていました(Octaveを使用)。
ホムンクルスレティキュリ

ここでPythonの+1は、実際のプログラミング言語でもあります:)私は、MATLABを学ぶことから始めたと言ってください。
-boyfarrell

Octaveは、無料ライセンスのMatlabクローンです。その言語構文はほぼ完全に互換性があります。Pythonは、MatlabやOctaveとはまったく異なる問題を解決します。言語の汎用性が高いため、構文ははるかに複雑で冗長です。線形システムのプロトタイピングには、MatlabまたはOctaveを使用します。次に、本番対応ソフトウェアの実装には、python / Javaに移行します。MatlabからPythonまたはRに切り替える前に、何を始めているのかを理解する必要があります。
-FistOfFury

@FistOfFury線形システムには純粋なPython3を使用しています。生産準備の整ったソフトウェアの場合、通常はC / Fortranまたは組み込みのいずれかを選択します。
パーカッセ

17

GNU Octaveは「ほとんどMatlabと互換性があります」。特定の微妙な点は、すべてのスクリプトがMATLABからOctaveに移植できないことを意味しています。

FAQまたはwikibooks の言語および/または互換性に関するドキュメントを読む価値がありますポーティングノートもあります

MATLABツールボックスに似たパッケージが存在しますが、それらがどれほど似ているかを調べるためにチェックアウトする必要があります。また、2つの言語の違いを処理する変換スクリプトの試みもありますが、私の知る限り完璧なものはありません。


12

はい、Octaveを介してMATLABを学習できます。しかし、Octave構文は制限が少なく、最新のスクリプト言語に沿っています。MATLABはこの点で遅れているようです。このWikiリンクを参照してください。MATLABプログラミング/ OctaveとMATLABの違い

私にとってのもう1つの大きな違いは、MATLABの特定のライブラリが利用できることですが、Octaveでは利用できませんでした。


9

一般に、M言語プログラミングとMATLABの動作を学習するには、Octaveで十分です。ただし、作業の一部として特定のツールボックスが必要で、誰も無料版を実装していない場合は、運が悪いです。

MATLABの学生版はそれほど高価ではありません。大学にいる場合、サイトライセンスを持っている可能性さえあります。両方の可能性を検討する必要があります。


7

過去に同じコードでOctaveとMATLABを同じように使用しました。互換性に問題はありませんでした。私が知る限り、主な違いは次のとおりです。

  1. MATLABはバイトコンパイルすることができ、わずかに高速です。
  2. Octaveは、どちらか#または%コメントに使用できます。Matlabは%
  3. Octaveはより良いプロットを作成します。

1
Octaveの方がはるかに優れたプロットを生成する点について、聞きたいと思います(MATLABプロットが特に好きなわけではありません...)。
ダーク

Octaveはgnuplotをバックエンドとして使用します。gnuplotの見た目が好きなだけかもしれません。私が考えることができる唯一の具体的なことは、アンチエイリアスを得るために特別なことをする必要がないということです。自動的に有効になります。
ダン

1
Octaveプロットの私の経験はまちまちであり、MATLABで1つか2つのことを学んだ後、グラフィックの品質は非常に良くなりました。たぶん、OctaveがこれについてMatabよりも優れている例がありますか?麻生、バイトコンパイル?MATLABコーダーについて話しているのですか?任意のMATLABコードをそのツールに入力することはできません。また、私がそれを覚えているなら、かなり高価なツールであり、学生ライセンス版では利用できないことは確かです。
Reid.Atcheson

おっと、コンパイルの意味がわかりました。私のせい。
-Reid.Atcheson

申し訳ありませんが、Matlabをバイトコンパイルできるとはどういう意味ですか?
user17915


5

あなたの質問について:
私はイエスと言うでしょう。パラダイムと原則が同じだからです。構文の違いは無視でき、チートシートに要約できます(ある日、主にMATLABで作業している場合)。


代替案に対する別の提案:
MATLABの代替案として、私はSciLabを使用しています。Octaveのように無料で、ヘルプとサポートを提供するまともなコミュニティがあり、ドキュメントはかなり優れています。組み込みのドキュメントと関数のヘルプは、MATLABのドキュメントと類似しています。(私が一番気に入っているのは、ワンクリックで例を実行できることです)。構文もMATLABと同様です。

SciLabとMATLABの類似点と相違点については、このドキュメントが参考になります。Matlabユーザーの視点からのScilabの紹介、Eike Rietsch、2010年5月(PDF)

SciLab for MATLABのもう1つのプラス:起動とGUIがはるかに高速になりました。Octaveはまだ試していません。


1
私はScilabのファンではありません。最初の印象は、構文と基本機能(Matlabに比べて)に多くの小さな違いがあったということでしたが、Pythonが非互換性を補う必要のある恐ろしいものはありませんでした。
-mdaoust

うーん...あなたのコメントとデビッド・ケッチャソンの回答によると、Pythonを試してみる価値は本当にあるようです。
トルビョルン

5

実際の例:

私は職場でMATLABを使用し、前学期にスタンフォード大学の無料のオンライン機械学習クラスを受講しました。

すべての宿題はオクターブで行いました。

私は2つの違いだけに気付きました(コア機能のみを使用していました):

  • Octaveは、どの種類の式にインデックスを付けることができるかについて、もう少し柔軟です。したがって、それを利用すると、コードは移植できなくなります。
  • 私のインストールでは、pcolor()およびimage()プロットは、1000x1000などの適切なサイズのアレイでは機能せず、50x50のような小さなアレイでは正常に機能します。

5

MATLABのプログラミング言語のOctaveの解釈には、いくつかの微妙な違いがあります。Octaveは、「endif」と「endwhile」を使用してifwhileそれぞれステートメントとステートメントを閉じます。Octaveでは、コマンドラインで関数を宣言することもできます。ただし、MATLABが解析するものもすべて解析する必要があるため、MATLABのプログラミング言語に固執すれば問題ありません。

2つのプログラムの最大の違いは、「quad」、「ode15s」などの数値の重い処理を行う組み込み関数にあることに注意してください。ただし、これらの機能はすべて、「help」コマンドを使用するときに十分に文書化する必要があります。オンラインヘルプでカバーされていないより具体的な質問がある場合は、Octaveのメーリングリストもあります。


3
Octaveは、whileループとifステートメントの両方の終わりに「end」を受け入れてうれしいです。
ビル・バルト

4

はい、絶対にできます。しかし、MATLABのパワーの大部分には、Octaveに同等のものがある場合とない場合がある、非常に使いやすいツールボックスとビルトインが含まれています。

また、基本言語自体は互換性がありますが(MATLABの新しいOO機能を除く)、Octaveには構文にいくつかの「追加」があり、NEQに「!=」を使用できるなど、インライン関数の解析方法などの代替のデフォルト動作。これらは、その動作に依存しないように注意を払わない限り、MATLABですぐに実行されないOctaveコードを引き起こす小さな問題です。

また、MATLABは完全なコンピューティング環境であり、最適化された線形代数ルーチンとインターフェイスする言語だけではありません。したがって、Octaveから学んだことは、これまでのところしかありません。Octaveに習熟していればMATLABで機能しますが、MATLABの生産性はそれほど高くありません。


2

MATLABに似た構文を持つ最高のフリー言語はJuliaです。また、高速で、より広範なパッケージシステムを備えています(他の理由の中でも特に優れています...)が、線形代数の構文はほぼ同じです(多くのアルゴリズムはA[i]、インデックスをに変更することでMATLABに変換できますA(i))。今すぐ学ぶのに最適な言語だと思います。それを使用するだけで「偶然にMATLABを知っている」でしょう。


0

はい、Octaveを使用してMatlabを学習できます。もちろん、いくつかの制限があります。

OctaveとMatlabは、多くの構文を共有しています。この2つの点は交換可能です。Octaveにはベータ版の新しいグラフィカルユーザーインターフェイス(GUI)がありますが、Matlabのエクスペリエンスは、特にグラフィックスを使用する場合、よりリッチでユーザーフレンドリーです。Octaveのグラフィカル環境が改善されると、2つのシステムはさらに収束するでしょう。

Courseraには、コース期間中、無料の一時的なMatlab学生ライセンスを提供する無料のコースが多数あります。機械学習コースを検索します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.