多くの場合、MATLABのライセンスの高さについて不満を言う人がいます。次に、なぜOctaveやRを使用しないのか、疑問に思います。しかし、後者は正しいですか?Rを使用してMATLABを置き換えることはできますか?
多くの場合、MATLABのライセンスの高さについて不満を言う人がいます。次に、なぜOctaveやRを使用しないのか、疑問に思います。しかし、後者は正しいですか?Rを使用してMATLABを置き換えることはできますか?
回答:
Rを使用してMATLABを置き換えることはできますか?
はい。
私は何年もMATLABを使用していましたが、過去3年間で主にRに切り替えました。この時点で、彼らはよりも多くの共通点を持っています。それは部分的にあなたの分野とユースケースに依存します。そして、スペンサーグレイブスが以前言ったように、それはまた、「あなたがたまたま教会」に依存します。あなたが見ればそれは最高ですMATLABツールキット対CRANあなたが決定する前に、特定のタスクのために。
同様の質問がR-Helpで数年前と最近になって尋ねられました。 David Hiebeler(メイン大学)は、R / MATLABの広範な比較を維持しており、この件に関する最良のリファレンスです。この基本機能の比較も確認できます。
ここに私が過去に観察したいくつかの事柄がありますが、どれも取引を妨げるものではありません。
したがって、使いやすさが主な懸念事項ではない場合(そしてオープンソースツールの使用を回避するビジネス上の理由が他にない場合)、Rを使用する場合の本当のケースがあると思います。その周りの強力なコミュニティー(Rメーリングリストは素晴らしい)は急速に発展しており(CRANを参照)、無料です(これは小さな問題ではありません!)。
編集:これにもう1つポイントを追加します。「RとMATLABを使用した関数型データ分析」には、「MatlabとR言語の本質的な比較」に関する章が含まれています。これは、いくつかの重要な構文の違い(ドットの解釈や角括弧[]の意味など)をカバーしています。この本自体は、関数プログラミング(どちらの言語でも)に興味がある人なら誰でも読む価値があります。
Rは、統計データ分析とグラフィックスのための環境です。MATLABの起源は数値計算にあります。基本的な言語の実装には、データ操作(例:行列/ベクトル演算)に使用する場合、多くの共通機能があります。
Rには、他では見つけにくい統計機能(> 2000 Packages on CRAN)があり、多くの統計学者がそれを使用しています。一方、MATLABには、次のようなエンジニアリングアプリケーション用の(高価な)ツールボックスがたくさんあります。
RとMATLABの両方を使用して問題を解決し、環境工学に関連するモデルを構築しました。2つのシステムには多くの重複があります。私の意見では、MATLABの利点は、特定のドメイン固有のアプリケーションにあります。次に例を示します。
流体力学の調査に役立つストリームラインなどの機能。
画像処理ツールセットなどのツールボックス。流域アルゴリズムのようなツールの同等の実装を提供するRパッケージを見つけていません。
私の意見では、MATLABははるかに優れたインタラクティブグラフィック機能を提供します。ただし、アプリケーションによっては、Rの方が印刷品質の高い静的なグラフィックスを生成すると思います。また、MATLABのシンボリック数学ツールボックスは、RyacasやrSymPyなどの同等のRよりも統合されており、機能も優れています。また、MATLABコンパイラの存在により、MATLABコードに基づくシステムを、MATLAB環境とは独立して展開できます。
もう1つ注意する必要があるのは、MATLABデバッガーが私が使用した中で最高のデバッガーの1つであることです。
Rで私が目にする主な利点は、システムの開放性と拡張の容易さです。これにより、CRANのパッケージの信じられないほどの多様性がもたらされました。Mathworksはユーザー提供のツールボックスのリポジトリも保持しており、あまり使用していないため、公平な比較はできません。
Rの開放性は、コンパイルされたコードでのリンクにも拡張されます。しばらく前は、Fortranでモデルを作成していて、RとMATLABのどちらをフロントエンドとして使用するかを決定して、入力の準備と結果の処理を支援していました。コンパイルしたコードへのMEXインターフェイスについて1時間読んだ。インターフェイスを管理するために複雑なポインタージャグリングを行う別のFortranルーチンを作成して維持する必要があるとわかったとき、MATLABを保留しました。
Rインターフェースは.Fortran([サブルーチン名]、[引数リスト])の呼び出しで構成されており、より高速で簡潔です。
Rに対するMATLABの大きな利点の1つは、MATLABドキュメンテーションの品質です。Rはオープンソースであるため、この点で多くのオープンソースプロジェクトに共通の機能に悩まされています。
Rは、しかし、非常に便利な環境と言語です。バイオインフォマティクスコミュニティで広く使用されており、このドメインで役立つ多くのパッケージがあります。
Rの代わりにOctave(http://www.gnu.org/software/octave/)があります。これは、MATLABとよく似ており、MATLABスクリプトを実行できます。
私の経験では、MATLABからPythonへの移行はより簡単です。numpy/ scipyを使用したPythonは、スタイルと機能の点でRよりもMATLABに近いです。オープンソースの直接MATLABクローンOctaveおよびScilabもあります。
Rができないことは、MATLABができることは確かにたくさんあります-私の領域では、MATLABはリアルタイムのデータ取得に多く使用されています-ほとんどのハードウェア企業は、MATLABインターフェイスを備えています。これはRIで可能かもしれませんが、もっと複雑になると想像してください。また、Simulinkは機能の全領域を提供しますが、Rには欠けていると思います。他にもあると思いますが、Rにはあまり詳しくありません。
短い答え:いいえ、もちろん違います。数学的ソフトウェアパッケージのセットはすべて重複していますが、常に特定の問題領域に偏っています。これらのバイアスは、これらのパッケージのいずれかを使用するかどうかに強く関係しています。
RができないMATLABの機能の例は、信号処理/取得および制御のためのリアルタイムハードウェアへのインターフェイスです。MATLAB のSimulinkモデルは、コードをコンパイルして実際のシステムで実行する前にマシンでシミュレーションを実行して測定データを入力として取得し、適切な出力を計算するように構成できます(制御システムのシミュレーションが完全に機能する前のもの) 1)。マシンに適切なハードウェアボードがあれば、PCを介してリアルタイム制御システムを実行できます。
対照的に、Rは統計学の役割にしっかりと設定されているようで、MATLABの能力よりもパフォーマンスが優れていると確信しています。同様に、Mathematicaはシンボリック数学においてMATLABよりも優れています。一般的なプログラミングでは、PythonはMATLABより優れています。gnuplotは実際にグラフを作成する点でそれらすべてより優れています(そうですね、私はそう思います)。等々。
それは私たちの顧客によって期待されている/必要とされているからです。
MATLABとRの両方のユーザーとして、それらは非常に異なるアプリケーションだと思います。私自身、コンピュータサイエンスなどの経歴を持っていて、Rは統計学者にとって統計学者であり、MATLABはプログラマーのためのプログラマーであると考えざるを得ません。
Rを使用すると、あらゆる種類の統計情報を視覚化して計算することが非常に簡単になりますが、私に任せれば、信号処理に関連する実装には使用しません。
要約すると、統計を行いたい場合はRを使用します。プログラミングしたい場合は、MATLABまたは何らかのプログラミング言語を使用します。
R
、プログラミング言語です。
対話型グラフィックスのサポートは、MATLABの方がRに比べてはるかに優れています。言語としてのmatlabは嫌いですが、ユーザーがマウス操作でデータを探索する方法を見ると嫉妬しますxlim
。 Matlabはまた、マルチパネルプロットを、タスクのどのRメソッドよりもはるかにうまく処理します。一般的に、Rグラフィックスは1960年代の雰囲気を持っています。公開には問題ありませんが、データのインタラクティブな探索には最適なソリューションではありません。