Я використовую і те, і інше. Я часто прототипую функції та алгоритми в Matlab, тому що, як було сказано, алгоритм легше виражати в чомусь близькому до чистої математичної мови.
R має чудові бібліотеки. Я все ще вчуся цьому, але я починаю залишати Matlab в пилу, оскільки, як тільки ти знаєш R, це також досить легко прообразувати функції прототипу.
Однак я вважаю, що якщо ви хочете, щоб алгоритми ефективно функціонували у виробничому середовищі, найкраще перейти до компільованої мови на зразок C ++. У мене є досвід введення C ++ і в Matlab, і в R (і в цьому відношенні є чудовим), але я мав кращий досвід роботи з Р. Відмова від відповідальності: Будучи студентом, я не використовував останню версію Matlab для своїх долів, Я працював майже виключно в Matlab 7.1 (це як 4 роки). Можливо, новіші версії працюють краще, але я можу придумати дві ситуації у верхній частині голови, коли C ++ dll в задній частині Matlab спричинив Windows XP на синій екран, тому що я неправильно ходив за межі масиву - дуже складна проблема налагодження, якщо ваш комп'ютер перезавантажується кожен раз, коли ви робите цю помилку ...
Нарешті, R-громада, як видається, зростає набагато швидше і з набагато більшим обертом, ніж коли-небудь спільнота Matlab. Крім того, оскільки це безкоштовно, ви також не маєте справу з менеджером ліцензій Godforsaken flexlm.
Примітка: Майже вся моя розробка зараз в алгоритмах MCMC. Я роблю близько 90% у виробництві на C ++ з візуалізацією в R за допомогою ggplot2.
Оновлення для паралельних коментарів:
Значна кількість мого часу на розробку витрачається на паралелізацію процедур MCMC (це моя кандидатська дисертація). Я використав паралельний набір інструментів Matlab та рішення Star P (який, напевно, зараз належить Microsoft ?? - єєз, ще один згорблений ...) Я знайшов паралельний інструментарій кошмаром конфігурації - коли я його використовував, він вимагав кореневого доступу до кожного окремого клієнтського вузла. Я думаю, що вони виправили цю маленьку «помилку» зараз, але все-таки безлад. Я вважав, що рішення '' p є елегантним, але часто важким для профілювання. Я не використовував Куртку , але чув хороші речі. Я також не використовував новіші версії паралельної панелі інструментів, яка також підтримує обчислення GPU.
Я практично не маю досвіду роботи з паралельними пакетами R.
З мого досвіду, паралелізування коду повинно відбуватися на рівні C ++, де ви маєте більш точну деталізацію контролю для розкладання задач та розподілу пам'яті / ресурсів. Я вважаю, що якщо ви намагаєтеся паралелізувати програми на високому рівні, ви часто отримуєте лише мінімальне прискорення, якщо ваш код не є тривіально розкладеним (його також називають фіктивним паралелізмом). З огляду на це , ви навіть можете отримати розумні скорочення, використовуючи однорядковий рівень на рівні C ++, використовуючи OpenMP:
#pragma omp parallel for
Складніші схеми мають криву навчання, але мені дуже подобається, куди йдуть речі з gpgpu. Що стосується JSM цього року, мало хто з якими я говорив про розвиток GPU в R, цитують це як "лише пальці в глибокому кінці", так би мовити. Але, як зазначалося, у мене мінімальний досвід - щоб змінити найближчим часом.