Saya sering mendengar orang mengeluh betapa mahalnya lisensi MATLAB . Lalu aku bertanya-tanya mengapa mereka tidak hanya menggunakan Octave atau R . Tapi apakah yang terakhir benar? Bisakah Anda menggunakan R untuk mengganti MATLAB?
Jawaban:
Bisakah Anda menggunakan R untuk mengganti MATLAB?
Iya.
Saya menggunakan MATLAB selama bertahun-tahun tetapi beralih ke R dalam 3 tahun terakhir. Pada titik ini, mereka memiliki lebih banyak kesamaan daripada tidak. Ini sebagian tergantung pada bidang dan kasus penggunaan Anda. Dan seperti yang dikatakan Spencer Graves sebelumnya , itu juga tergantung pada "gereja mana yang kebetulan sering Anda kunjungi". Paling baik jika Anda melihat MATLAB toolkit vs. CRAN untuk tugas tertentu sebelum Anda memutuskan.
Pertanyaan serupa ditanyakan di R-Help beberapa tahun yang lalu dan baru-baru ini . David Hiebeler (di University of Maine) mempertahankan perbandingan R / MATLAB yang ekstensif , dan merupakan referensi terbaik tentang subjek tersebut. Anda juga dapat meninjau perbandingan fungsi dasar ini .
Berikut adalah beberapa hal yang saya amati di masa lalu, tidak ada yang bisa menjadi pemecah kesepakatan.
Jadi, jika kemudahan penggunaan bukanlah perhatian utama (dan tidak ada alasan bisnis lain untuk menghindari penggunaan alat open-source), maka saya pikir ada kasus nyata yang harus dibuat untuk menggunakan R. komunitas yang kuat di sekitarnya (milis R luar biasa), berkembang pesat (lihat CRAN), dan gratis (yang bukan masalah kecil!).
Sunting: Saya hanya akan menambahkan satu poin lebih lanjut untuk ini: buku "Analisis Data Fungsional dengan R dan MATLAB" mencakup bab tentang "Perbandingan Esensial Bahasa Matlab dan R". Ini mencakup beberapa perbedaan sintaksis yang penting (seperti interpretasi titik, atau arti tanda kurung siku []). Buku itu sendiri sangat layak dibaca bagi siapa pun yang tertarik dengan pemrograman fungsional (dalam kedua bahasa).
R adalah lingkungan untuk analisis data statistik dan grafik. Asal MATLAB adalah dalam perhitungan numerik. Implementasi bahasa dasar memiliki banyak fitur yang sama jika Anda menggunakannya untuk manipulasi data (misalnya, operasi matriks / vektor).
R memiliki fungsionalitas statistik yang sulit ditemukan di tempat lain (> 2000 Paket di CRAN ), dan banyak ahli statistik yang menggunakannya. Di sisi lain, MATLAB memiliki banyak kotak peralatan (mahal) untuk aplikasi teknik seperti
Saya telah menggunakan R dan MATLAB untuk memecahkan masalah dan membangun model yang terkait dengan Teknik Lingkungan dan ada banyak tumpang tindih antara kedua sistem tersebut. Menurut pendapat saya, kelebihan MATLAB terletak pada aplikasi khusus domain khusus. Beberapa contohnya adalah:
Fungsi seperti merampingkan yang membantu dalam investigasi dinamika fluida.
Kotak alat seperti perangkat pemrosesan gambar. Saya belum menemukan paket R yang menyediakan implementasi alat yang setara seperti algoritme DAS.
Menurut pendapat saya, MATLAB memberikan kemampuan grafis interaktif yang jauh lebih baik. Namun, menurut saya R menghasilkan grafik kualitas cetak statis yang lebih baik, tergantung pada aplikasinya. Kotak alat matematika simbolik MATLAB juga terintegrasi lebih baik dan lebih mampu daripada setara R seperti Ryacas atau rSymPy. Keberadaan kompiler MATLAB juga memungkinkan sistem berdasarkan kode MATLAB untuk digunakan secara independen dari lingkungan MATLAB - meskipun ketersediaannya akan bergantung pada berapa banyak uang yang harus Anda keluarkan.
Hal lain yang harus saya perhatikan adalah bahwa MATLAB debugger adalah salah satu yang terbaik yang pernah saya kerjakan.
Keuntungan prinsip yang saya lihat dengan R adalah keterbukaan sistem dan kemudahan yang dapat diperpanjang. Ini menghasilkan keragaman paket yang luar biasa di CRAN. Saya tahu Mathworks juga memelihara repositori kotak alat kontribusi pengguna dan saya tidak dapat membuat perbandingan yang adil karena saya belum sering menggunakannya.
Keterbukaan R juga meluas ke penautan dalam kode yang dikompilasi. Beberapa waktu yang lalu saya memiliki model yang ditulis di Fortran dan saya mencoba untuk memutuskan antara menggunakan R atau MATLAB sebagai front-end untuk membantu menyiapkan masukan dan hasil proses. Saya menghabiskan satu jam membaca tentang antarmuka MEX untuk mengkompilasi kode. Ketika saya menemukan bahwa saya harus menulis dan mempertahankan rutinitas Fortran terpisah yang melakukan beberapa penyulingan penunjuk yang rumit untuk mengelola antarmuka, saya menyimpan MATLAB.
Antarmuka R terdiri dari pemanggilan .Fortran ([nama subrutin], [daftar argumen]) dan lebih cepat serta lebih bersih.
Satu keuntungan besar MATLAB dibandingkan R adalah kualitas dokumentasi MATLAB. R, sebagai open source, menderita dalam hal ini, fitur yang umum pada banyak proyek open source.
Bagaimanapun, R adalah lingkungan dan bahasa yang sangat berguna. Ini banyak digunakan dalam komunitas bioinformatika dan memiliki banyak paket yang berguna dalam domain ini.
Alternatif untuk R adalah Octave ( http://www.gnu.org/software/octave/ ) yang sangat mirip dengan MATLAB, ia dapat menjalankan skrip MATLAB.
Dalam pengalaman saya pindah dari MATLAB ke Python adalah transisi yang lebih mudah - Python dengan numpy / scipy lebih dekat dengan MATLAB dalam hal gaya dan fitur daripada R. Ada juga klon MATLAB langsung sumber terbuka Oktaf dan Scilab .
Tentunya ada banyak hal yang dapat dilakukan MATLAB yang tidak dapat dilakukan R - di wilayah saya MATLAB banyak digunakan untuk akuisisi data waktu nyata - sebagian besar perusahaan perangkat keras menyertakan antarmuka MATLAB. Sementara ini mungkin dengan RI bayangkan itu akan jauh lebih terlibat. Juga Simulink menyediakan seluruh area fungsionalitas yang menurut saya hilang dari R. Saya yakin ada lebih banyak tetapi saya tidak begitu akrab dengan R.
Jawaban singkatnya: tidak, tentu saja tidak. Meskipun paket perangkat lunak matematika mana pun akan tumpang tindih, paket perangkat lunak tersebut akan selalu memiliki bias terhadap domain masalah tertentu. Bias ini sangat menentukan apakah Anda ingin menggunakan salah satu paket ini atau tidak.
Contoh dari apa yang dapat dilakukan MATLAB yang tidak dapat dilakukan R adalah antarmuka ke perangkat keras waktu nyata untuk pemrosesan / akuisisi dan kontrol sinyal. Sebuah Simulink model dalam MATLAB dapat dikonfigurasi baik untuk berjalan dalam simulasi pada mesin Anda sebelum kompilasi kode untuk mengeksekusi pada sistem nyata mengambil data yang diukur sebagai input dan menghitung output yang sesuai (apa yang sebelumnya simulasi sistem kontrol sekarang berfungsi penuh satu). Dengan papan perangkat keras yang sesuai di mesin Anda, Anda dapat menjalankan sistem kontrol waktu nyata melalui PC.
R, sebaliknya, tampaknya secara tegas ditetapkan dalam peran statistik, di mana saya yakin itu melebihi apa yang dapat dilakukan MATLAB. Demikian pula, Mathematica lebih baik daripada MATLAB pada matematika simbolik; Python lebih baik dari MATLAB pada pemrograman umum; gnuplot lebih baik daripada semuanya dalam membuat grafik (eh, saya asumsikan); dan seterusnya.
Saya setuju dengan banyak jawaban yang diberikan di atas. Karena jawabannya khusus untuk perbedaan kemampuan MATLAB dan R, saya akan menyebutkan yang sangat penting: MATLAB menyertakan JVM dan memiliki interoperabilitas yang sempurna dan kuat dengan Java. Semua perpustakaan alam semesta Java yang luas dapat diakses oleh pengguna MATLAB. IDE MATLAB hampir dapat digunakan sebagai Eclipse orang miskin. Sebagai perbandingan, rJava sangat tidak dewasa, meskipun ada upaya yang sangat berharga dari penciptanya (Roman Francois).
Kami tidak bisa karena itu diharapkan / dibutuhkan oleh pelanggan kami.
Dengan paket sqldf, R tidak hanya mampu untuk statistik, tetapi juga data mining yang serius - dengan asumsi ada cukup RAM pada mesin Anda.
Dan dengan paket RServe R menjadi server TCP / IP biasa; sehingga Anda dapat memanggil R dari java (atau bahasa lain jika Anda memiliki api). Ada juga paket di R untuk memanggil java keluar atau R.
Sebagai pengguna MATLAB dan R, saya pikir mereka adalah aplikasi yang sangat berbeda. Saya sendiri memiliki latar belakang dalam ilmu komputer, dll. Dan saya tidak dapat berhenti berpikir bahwa R adalah oleh ahli statistik untuk ahli statistik sedangkan MATLAB oleh programmer untuk programmer.
R membuatnya sangat mudah untuk memvisualisasikan dan menghitung semua jenis statistik, tetapi saya tidak akan menggunakannya untuk mengimplementasikan pemrosesan sinyal apa pun yang terkait jika itu terserah saya.
Singkatnya, jika Anda ingin melakukan statistik, gunakan R. Jika Anda ingin memprogram, gunakan MATLAB atau beberapa bahasa pemrograman.
R
adalah bahasa pemrograman.
Dukungan untuk grafik interaktif jauh lebih baik di matlab daripada di R. Saya benci matlab sebagai bahasa, tapi saya cemburu ketika saya melihat bagaimana penggunanya dapat menjelajahi data dengan operasi mouse, sementara saya sibuk mengulangi perintah dengan nilai baru untuk xlim
dll. Matlab juga menangani plot multi-panel jauh lebih baik daripada metode R untuk tugas tersebut. Secara umum, grafik R memiliki nuansa tahun 1960-an. Tidak masalah untuk publikasi, tetapi bukan solusi terbaik untuk eksplorasi data secara interaktif.