Tôi sử dụng cả hai. Tôi thường sử dụng các hàm và thuật toán nguyên mẫu trong Matlab bởi vì, như đã nêu, việc thể hiện một thuật toán theo thứ gì đó gần với ngôn ngữ toán học thuần túy sẽ dễ dàng hơn.
R có thư viện tuyệt vời. Tôi vẫn đang học nó, nhưng tôi bắt đầu để Matlab trong bụi vì một khi bạn biết R, thì việc tạo nguyên mẫu ở đó cũng khá dễ dàng.
Tuy nhiên, tôi thấy rằng nếu bạn muốn các thuật toán hoạt động hiệu quả trong môi trường sản xuất, tốt nhất nên chuyển sang một ngôn ngữ được biên dịch như C ++. Tôi có kinh nghiệm gói C ++ vào cả Matlab và R (và excel cho vấn đề đó), nhưng tôi đã có trải nghiệm tốt hơn với R. Disclaimer: Là một học sinh tốt nghiệp, tôi đã không sử dụng một phiên bản Matlab gần đây cho các dlls của mình, Tôi đã làm việc gần như độc quyền trong Matlab 7.1 (giống như 4 tuổi). Có lẽ các phiên bản mới hơn hoạt động tốt hơn, nhưng tôi có thể nghĩ đến hai tình huống ngoài đỉnh đầu của tôi, nơi một dll C ++ ở phía sau Matlab khiến Windows XP chuyển sang màn hình xanh vì tôi đi không đúng cách bên ngoài một mảng - một vấn đề rất khó giải quyết gỡ lỗi nếu máy tính của bạn khởi động lại mỗi khi bạn mắc lỗi đó ...
Cuối cùng, cộng đồng R dường như phát triển nhanh hơn nhiều và với động lực lớn hơn nhiều so với cộng đồng Matlab từng có. Hơn nữa, vì nó miễn phí, bạn cũng không phải đối phó với người quản lý giấy phép flexlm Godforsaken.
Lưu ý: Hầu như tất cả sự phát triển của tôi là trong các thuật toán MCMC ngay bây giờ. Tôi thực hiện khoảng 90% sản xuất trong C ++ với trực quan hóa trong R bằng ggplot2.
Cập nhật cho các bình luận song song:
Một lượng khá lớn thời gian phát triển của tôi ngay bây giờ được dành cho việc song song hóa các thói quen MCMC (đó là luận án tiến sĩ của tôi). Tôi đã sử dụng hộp công cụ song song của Matlab và giải pháp của Star P (mà tôi đoán bây giờ thuộc sở hữu của Microsoft ?? - một cái khác bị ngấu nghiến ...) Tôi thấy hộp công cụ song song là một cơn ác mộng cấu hình - khi tôi sử dụng nó, nó yêu cầu quyền truy cập root vào mỗi nút máy khách. Tôi nghĩ rằng họ đã sửa "lỗi" nhỏ đó bây giờ, nhưng vẫn còn một mớ hỗn độn. Tôi tìm thấy giải pháp * 'p là thanh lịch, nhưng thường khó để hồ sơ. Tôi chưa sử dụng Áo khoác , nhưng tôi đã nghe thấy những điều tốt. Tôi cũng chưa sử dụng các phiên bản gần đây hơn của hộp công cụ song song cũng hỗ trợ tính toán GPU.
Tôi hầu như không có kinh nghiệm với các gói song song R.
Theo kinh nghiệm của tôi, mã song song phải xảy ra ở cấp độ C ++, nơi bạn có mức độ kiểm soát chi tiết hơn để phân tách tác vụ và phân bổ bộ nhớ / tài nguyên. Tôi thấy rằng nếu bạn cố gắng song song hóa các chương trình ở mức cao, bạn thường chỉ nhận được một tốc độ tối thiểu trừ khi mã của bạn có thể phân tách một cách tầm thường (còn được gọi là song song giả). Điều đó nói rằng, bạn thậm chí có thể nhận được các bản tăng tốc hợp lý bằng cách sử dụng một dòng ở cấp độ C ++ bằng OpenMP:
#pragma omp parallel for
Đề án phức tạp hơn có một đường cong học tập, nhưng tôi thực sự thích nơi mọi thứ gpgpu đang diễn ra. Kể từ JSM năm nay, rất ít người mà tôi đã nói về việc phát triển GPU trong R trích dẫn nó chỉ là "những ngón chân ở tận cùng" để nói. Nhưng như đã nêu, tôi có kinh nghiệm tối thiểu - để thay đổi trong tương lai gần.