RができないことをMATLABは何ができますか?[閉まっている]


137

多くの場合、MATLABのライセンスの高さについて不満を言う人がいます。次に、なぜOctaveRを使用しないのか、疑問に思います。しかし、後者は正しいですか?Rを使用してMATLABを置き換えることはできますか?


13
途中で、別のオープンソースの代替があります:OctaveはほとんどMathWorks社のMATLABでの互換性
sellibitze

14
技術的には、1つの言語で実行できることはすべて、どの言語でも実行できます(「計算できるもの」の観点から)。使いやすさと学習のしやすさだけの問題です
BlueRaja-Danny Pflughoeft

20
+1:Matlabはソフトウェアの予算を使い果たす可能性があります。Rはまだこれを行うことができませんでした。
イテレータ2011

3
他のいくつかのステートメントを修正するには:OctaveまたはFreeMatですべてのMatlabコードを再利用できることは正しくありません。他のバージョンではまったく実装されていない関数のクラスがいくつかあります。これらの関数のクラスだけでほぼ同様の機能を備えた環境で、新しく実装する方がよいことがわかった大きなコードブロックがあります。OctaveにはないMatlabの機能のうち、R、Python、およびある程度JavaとCで代理が見つかりました。ライブラリの再実装は、基本的なコードよりも困難です。ライブラリに注意してください...
イテレータ'20年

5
この質問の締めくくりは正当化されません。この質問はポーリングに関するものではなく、RではできないMatlabで正確に何ができるかについてです。そのようなことは参照によって簡単に列挙およびサポートできます。
フランク

回答:


128

Rを使用してMATLABを置き換えることはできますか?

はい。

私は何年もMATLABを使用していましたが、過去3年間で主にRに切り替えました。この時点で、彼らはよりも多くの共通点を持っています。それは部分的にあなたの分野とユースケースに依存します。そして、スペンサーグレイブスが以前言ったように、それはまた、「あなたがたまたま教会」に依存します。あなたが見ればそれは最高ですMATLABツールキットCRANあなたが決定する前に、特定のタスクのために。

同様の質問がR-Helpで数年前最近になって尋ねられましたDavid Hiebeler(メイン大学)は、R / MATLABの広範な比較を維持しており、この件に関する最良のリファレンスです。この基本機能の比較も確認できます

ここに私が過去に観察したいくつかの事柄がありますが、どれも取引を妨げるものではありません。

  • 一般に、MATLABはより優れたプログラミング環境(たとえば、より優れたドキュメント、より優れたデバッガ、より優れたオブジェクトブラウザ)を備えており、「使いやすい」です(必要に応じて、プログラミングを行わなくてもMATLABを使用できます)。 Simulinkでは、グラフ内のブロックを接続することで視覚的にプログラミングできます。 REvolution Rは、改善されたデバッグ機能を備えたより優れたIDEを提供することにより、これらの違いのいくつかに対処していますが、それでもまだ一歩遅れています。
  • 通常の構成では、MATLABの方が少し高速です(例については、このベンチマークを参照してください)。ただし、問題が発生した場合にRのパフォーマンスを向上させるために実行できることがいくつかあります。
  • それは商用であるため、間違いなくより多くの「製品」(統合されたアドオンの意味で)とサポート(ただし、あなたはそれに対して支払う)を持っています。製品一覧をご覧ください。たとえば、配布可能な実行可能MATLABプログラムを作成するMATLABコンパイラーのようなものがあります。
  • パッケージ/ツールキットに関しては、MATLABは物理科学をはるかにサポートしていますが、Rは統計に強いので、他の人がこれらのタスクを実行できないとは言えません。また、どちらも簡単に拡張できます。

したがって、使いやすさが主な懸念事項ではない場合(そしてオープンソースツールの使用を回避するビジネス上の理由が他にない場合)、Rを使用する場合の本当のケースがあると思います。その周りの強力なコミュニティー(Rメーリングリストは素晴らしい)は急速に発展しており(CRANを参照)、無料です(これは小さな問題ではありません!)。

編集:これにもう1つポイントを追加します。「RとMATLABを使用した関数型データ分析」には、「MatlabとR言語の本質的な比較」に関する章が含まれています。これは、いくつかの重要な構文の違い(ドットの解釈や角括弧[]の意味など)をカバーしています。この本自体は、関数プログラミング(どちらの言語でも)に興味がある人なら誰でも読む価値があります。


5
ショーはどのように各ここで同等のタスクを実行するために、その素敵なMATLAB / Rの参照があります:math.umaine.edu/~hiebeler/comp/matlabR.html
Suppressingfire

4
「[MATLAB]には間違いなく、より多くの製品とサポートがあります」。私はこれに同意しません。CRANとバイオコンダクター(R用)は、MATLAB +ツールボックス+ファイル交換よりもはるかに包括的です。また、私の経験では、R-Helpメーリングリストは通常​​、有償サポートと同じくらい効果的です。私は、MATLABコンパイラがRに複製されない大きな特徴であることに同意
リッチー・綿

2
多くの場合、R関数はMatlabの関数よりもドキュメント化されています。Matlabのドキュメントの品質は、機能によって、また(商用)ツールボックスによって大きく異なることがわかりました。Matlab IDEはやや初心者にやさしいことに同意しますが、日常的に使用する場合はESS for R より優れているとは言えません。
Matti Pastell、2010

10
RStudioは素晴らしい新しいR IDEです
Jason Axelson 2011年

1
この質問は終了しました。これは、StackOverflowでこれまでに見た中で最高の技術的な議論の1つです。
kd4ttc 2013年

32

Rは、統計データ分析とグラフィックスのための環境です。MATLABの起源は数値計算にあります。基本的な言語の実装には、データ操作(例:行列/ベクトル演算)に使用する場合、多くの共通機能があります。

Rには、他では見つけにくい統計機能(> 2000 Packages on CRAN)があり、多くの統計学者がそれを使用しています。一方、MATLABには、次のようなエンジニアリングアプリケーション用の(高価な)ツールボックスがたくさんあります。

  • 画像処理/画像取得、
  • フィルター設計、
  • ファジーロジック/ファジー制御
  • 偏微分方程式、

Rには、CRANと呼ばれる大規模なパッケージリポジトリがあり、豊富な追加機能を提供します(私はあなたの一般的な点に同意します)。例:PDEソルバー:cran.r-project.org/web/packages/deSolve/index.html
Suppressingfire

7
また、MATLABにはCRANに類似したものがあります。ユーザーが提出した10,000を超える関数とツールボックスが無料で利用できる、かなりのファイル交換(mathworks.com/matlabcentral/fileexchange)です。
gnovice 2010年

2
また、MATLAB CentralのFile Exchangeの外に、MATLAB用のかなり大きな無料のコードベースがあります。
予測機能

26

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([サブルーチン名]、[引数リスト])の呼び出しで構成されており、より高速で簡潔です。


11
また、Rは私の本の中で、再現可能な研究を可能にするSweaveシステムについて大きなプラスを得ていることにも言及する必要があります。私の意見では、だれでも自由に利用できるツールを使用して、論文またはレポートの背後にある計算を再実行および分析できるようにすることが非常に重要です。
シャーピー、

22

Rに対するMATLABの大きな利点の1つは、MATLABドキュメンテーションの品質です。Rはオープンソースであるため、この点で多くのオープンソースプロジェクトに共通の機能に悩まされています。

Rは、しかし、非常に便利な環境と言語です。バイオインフォマティクスコミュニティで広く使用されており、このドメインで役立つ多くのパッケージがあります。

Rの代わりにOctavehttp://www.gnu.org/software/octave/)があります。これは、MATLABとよく似ており、MATLABスクリプトを実行できます。


2
Rで提出されたすべてのパッケージは、ドキュメントと例についてテストされています。
フェルナンド

21

私の経験では、MATLABからPythonへの移行はより簡単です。numpy/ scipyを使用したPythonは、スタイルと機能の点でRよりもMATLABに近いです。オープンソースの直接MATLABクローンOctaveおよびScilabもあります。

Rができないことは、MATLABができることは確かにたくさんあります-私の領域では、MATLABはリアルタイムのデータ取得に多く使用されています-ほとんどのハードウェア企業は、MATLABインターフェイスを備えています。これはRIで可能かもしれませんが、もっと複雑になると想像してください。また、Simulinkは機能の全領域を提供しますが、Rには欠けていると思います。他にもあると思いますが、Rにはあまり詳しくありません。


11

短い答え:いいえ、もちろん違います。数学的ソフトウェアパッケージのセットはすべて重複していますが、常に特定の問題領域に偏っています。これらのバイアスは、これらのパッケージのいずれかを使用するかどうかに強く関係しています。

RができないMATLABの機能の例は、信号処理/取得および制御のためのリアルタイムハードウェアへのインターフェイスです。MATLAB のSimulinkモデルは、コードをコンパイルして実際のシステムで実行する前にマシンでシミュレーションを実行して測定データを入力として取得し、適切な出力を計算するように構成できます(制御システムのシミュレーションが完全に機能する前のもの) 1)。マシンに適切なハードウェアボードがあれば、PCを介してリアルタイム制御システムを実行できます。

対照的に、Rは統計学の役割にしっかりと設定されているようで、MATLABの能力よりもパフォーマンスが優れていると確信しています。同様に、Mathematicaはシンボリック数学においてMATLABよりも優れています。一般的なプログラミングでは、PythonはMATLABより優れています。gnuplotは実際にグラフを作成する点でそれらすべてより優れています(そうですね、私はそう思います)。等々。


11
Rはグラフの作成に非常に適していることが実際に知られています。彼らもとてもよく見えます。実際、私がRを調べた最初の理由は、同僚がRを使って作成した素敵なグラフのいくつかに嫉妬していたからです。
フランク

11

上記の答えの多くに同意します。答えは、MATLABとRの機能の違いに固有なので、MATLABにはJVMが含まれており、Javaとの完全で堅牢な相互運用性があるという非常に重要なものについて説明します。Javaの膨大なライブラリのすべてに、MATLABユーザーがアクセスできます。ほとんどの場合、MATLAB IDEは貧しい人のEclipseとして使用できます。対照的に、rJavaはその作成者(Roman Francois)の非常に貴重な努力にもかかわらず、非常に未熟です。


9

それは私たちの顧客によって期待されている/必要とされているからです。


3
これは完全に有効な答えです。オープンソースのソリューションを受け入れない業界がたくさんあることを認識することが重要です。プレートのRをとる疑わしいコンプライアンス要件があります。
Brandon Bertelsen、2010年

1
@BrandonBertelsen:具体的には、何ですか?
smci

3
@smciそのステートメントは2010年に比べて真実ではなくなりました。Rの使用が急増しました。
Brandon Bertelsen 2012年

わかりましたが、2010年の時点で、どのコンプライアンス要件によってRが計画から外されたのか教えていただけますか(まだ問題は残っています)。
smci

1
お客様は通常、MATLABも使用しており、コードやモデルの交換が必要になることがよくあります。一般的に、Rを使用する唯一の業界は、主にデータセットと統計に関係していることがわかります。
Nzbuu 2012

5

sqldfパッケージを使用すると、Rは統計だけでなく、深刻なデータマイニングも実行できます(マシンに十分なRAMがある場合)。

RServeパッケージを使用すると、Rは通常のTCP / IPサーバーになります。したがって、Java(またはAPIがある場合は他の言語)からRを呼び出すことができます。Rには、java outまたはRを呼び出すためのパッケージもあります。


それは本当ですが、問題は「Rができないこと、MATLABは何ができるのか」です。「MATLABではできないRでできること」ではありません。
Marek、

4

MATLABとRの両方のユーザーとして、それらは非常に異なるアプリケーションだと思います。私自身、コンピュータサイエンスなどの経歴を持っていて、Rは統計学者にとって統計学者であり、MATLABはプログラマーのためのプログラマーであると考えざるを得ません。

Rを使用すると、あらゆる種類の統計情報を視覚化して計算することが非常に簡単になりますが、私に任せれば、信号処理に関連する実装には使用しません。

要約すると、統計を行いたい場合はRを使用します。プログラミングしたい場合は、MATLABまたは何らかのプログラミング言語を使用します。


4
来るR、プログラミング言語です。
フランク

6
「Matlabはプログラマーのためのプログラマーによるものです」。MATLABはもともと線形代数を実行するために特別に作成されました。それは汎用プログラミング言語ではありませんでした。その後、汎用言語機能の多くが追加されました。(これは、1年間だけ実行可能なオブジェクト指向システムでした。)
Richie Cotton

9
「Matlabはプログラマーのためのプログラマーによる」:あなたは真剣ですか?実際にMATLABでバグが発生するのは、場合によっては言語の極端なぎこちなさを考えると、言語を発明した人がプログラマーではなかったことだけです。
HannesOvrén、2009年

13
Rは統計学者によって作成され、Matlabはエンジニアによって作成されました。どちらも完全に機能するプログラミング言語です。
シャーピー、

3
@smci私が最後にプロダクションMatlabコードをRコードに交換したのは2008年のNational Weather Serviceで、それ以来システムは問題なく実行されています。再帰的アルゴリズムを使用したマルチギガバイトのデータセットのコア内処理は、科学的コンピューティング全体を代表するタスクでは決してないため、プログラミング言語の適合性に関する一般的なステートメントを作成するためのベンチマークとしては不十分です。
シャーピー

2

対話型グラフィックスのサポートは、MATLABの方がRに比べてはるかに優れています。言語としてのmatlabは嫌いですが、ユーザーがマウス操作でデータを探索する方法を見ると嫉妬しますxlim。 Matlabはまた、マルチパネルプロットを、タスクのどのRメソッドよりもはるかにうまく処理します。一般的に、Rグラフィックスは1960年代の雰囲気を持っています。公開には問題ありませんが、データのインタラクティブな探索には最適なソリューションではありません。


両方のシステムのインタラクティブなプロットツールのヘビーユーザーとして、私は限界に同意します(つまり、両方を強く押しているように)が、Rのいくつかの非常に便利なインタラクティブなグラフ作成ツールを見逃している可能性があります。次のパッケージをチェックしてください:iplots、Acinonyx、Rstudioの操作など。楽しみのために、この例をチェックしてください。
イテレータ2012年

「Rグラフィックスには1960年代の雰囲気があります」-それは何年も前のことかもしれません。最近、急速に人気が高まっているggplot2により、Rチャートはモダンで美しい外観をしています。例を参照してください:r-bloggers.com/
s
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.