私は両方を使用します。前述のように、純粋な数学言語に近いものでアルゴリズムを表現する方が簡単であるため、Matlabで関数とアルゴリズムのプロトタイプを作成することがよくあります。
Rには優れたライブラリがあります。私はまだそれを学んでいますが、Rを知ってしまえば、Matlabで関数をプロトタイプ化するのもかなり簡単だから、Matlabを粉塵にしてしまい始めています。
ただし、運用環境内でアルゴリズムを効率的に機能させたい場合は、C ++などのコンパイル言語に移行するのが最善であることがわかります。私はC ++をMatlabとRの両方にラップした経験があります(そしてその点で優れています)が、Rについてはより良い経験がありました。 免責事項:卒業生であるため、Matlabの最新バージョンをdllに使用していませんが、私はほとんど独占的にMatlab 7.1(4歳のような)で働いてきました。おそらく新しいバージョンの方がうまく動作しますが、Matlabの後ろにあるC ++ dllがWindows XPをブルースクリーンにした2つの状況を頭の中で考えることができます。間違いを犯すたびにコンピューターが再起動するかどうかをデバッグします...
最後に、Rコミュニティは、Matlabコミュニティがこれまで持っていたよりもはるかに速く成長しているようです。さらに、無料であるため、Godforsaken flexlmライセンスマネージャーを使用する必要もありません。
注:私の開発のほとんどは、現在MCMCアルゴリズムで行われています。Rでの可視化とggplot2を使用して、C ++での生産で約90%を実行します。
並行コメントの更新:
現在、私の開発時間のかなりの部分がMCMCルーチンの並列化に費やされています(私の博士論文です)。Matlabの並列ツールボックスとStar Pのソリューションを使用しました(現在はMicrosoftが所有していると思いますか? -もう1つはがっかりしています...)並列ツールボックスは設定の悪夢であることがわかりました-使用したとき、すべての単一クライアントノードへのルートアクセスが必要でした。彼らは今ではその小さな「バグ」を修正したと思いますが、それでも混乱です。* 'pソリューションはエレガントであることがわかりましたが、多くの場合、プロファイルを作成するのは困難です。私はジャケットを使用していませんが、良いことを聞いています。また、GPU計算をサポートする最新バージョンの並列ツールボックスも使用していません。
R並列パッケージの経験はほとんどありません。
私の経験では、タスクの分解とメモリ/リソースの割り当てをより細かく制御できるC ++レベルでコードを並列化する必要があります。プログラムを高レベルで並列化しようとすると、コードが簡単に分解可能でない限り(ダミー並列処理とも呼ばれる)、最小限のスピードアップしか得られないことがよくあります。そうは言っても、OpenMPを使用してC ++レベルで単一行を使用すると、合理的なスピードアップを得ることができます。
#pragma omp parallel for
より複雑なスキームには学習曲線がありますが、私はgpgpuの状況が本当に好きです。今年のJSMの時点で、RでのGPU開発について話した数人の人は、いわば「深い終わりのつま先」にすぎないと言っています。しかし、述べたように、私は最小限の経験しか持っていません-近い将来に変化します。