İnsanların MATLAB lisanslarının ne kadar pahalı olduğunu şikayet ettiklerini sık sık duyuyorum . Öyleyse neden sadece Octave veya R kullanmadıklarını merak ediyorum . Ama ikincisi doğru mu? MATLAB yerine R kullanabilir misiniz?
İnsanların MATLAB lisanslarının ne kadar pahalı olduğunu şikayet ettiklerini sık sık duyuyorum . Öyleyse neden sadece Octave veya R kullanmadıklarını merak ediyorum . Ama ikincisi doğru mu? MATLAB yerine R kullanabilir misiniz?
Yanıtlar:
MATLAB yerine R kullanabilir misiniz?
Evet.
MATLAB'ı yıllarca kullandım, ancak son 3 yılda öncelikle R'ye geçtim. Bu noktada, ortak olmaktan çok ortak noktaları var. Kısmen alanınıza ve kullanım durumuna bağlıdır. Ve Spencer Graves'in daha önce söylediği gibi , aynı zamanda hangi "kiliseye sık sık geldiğinize" bağlıdır. Karar vermeden önce belirli bir görev için MATLAB araç setine ve CRAN'a bakarsanız en iyisidir .
Benzer bir soru R-Yardım'da birkaç yıl önce ve daha yakın zamanda sordu . David Hiebeler (Maine Üniversitesi'nde) kapsamlı bir R / MATLAB karşılaştırması yapar ve bu konuda en iyi referanstır. Temel işlevlerin bu karşılaştırmasını da inceleyebilirsiniz .
İşte geçmişte gözlemlediğim bazı şeyler: Bunların hiçbiri anlaşma kırıcı olmamalı.
Bu nedenle, kullanım kolaylığı birincil bir endişe değilse (ve açık kaynaklı bir araç kullanmaktan kaçınmak için başka bir iş nedeni yoksa), o zaman R'yi kullanmak için gerçek bir durum olduğunu düşünüyorum. etrafında güçlü bir topluluk (R posta listeleri şaşırtıcı), hızla gelişiyor (bkz. CRAN) ve ücretsiz (bu küçük bir sorun değil!).
Düzenleme: Ben sadece bir noktaya daha eklemek istiyorum: kitap "R ve MATLAB ile Fonksiyonel Veri Analizi" "Matlab ve R Dilleri Temel Karşılaştırmalar" hakkında bir bölüm içerir. Bu, bazı önemli sözdizimi farklılıklarını (bir noktanın yorumlanması veya köşeli parantezlerin anlamı [] gibi) kapsar. Kitabın kendisi fonksiyonel programlama ile ilgilenen herkes için okumaya değer (her iki dilde).
R, istatistiksel veri analizi ve grafikleri için bir ortamdır. MATLAB'ın kökenleri sayısal hesaplamadadır. Temel dil uygulamalarının veri işleme için (örneğin, matris / vektör işlemleri) için kullanmanız durumunda birçok ortak özelliği vardır.
R, başka bir yerde bulmak zor istatistiksel işlevselliğe sahiptir ( CRAN üzerinde> 2000 Paket ) ve birçok istatistikçi bunu kullanır. Öte yandan, MATLAB gibi mühendislik uygulamaları için çok sayıda (pahalı) araç kutusuna sahiptir.
Çevre Mühendisliği ile ilgili problemleri çözmek ve modeller oluşturmak için hem R hem de MATLAB'ı kullandım ve iki sistem arasında çok fazla çakışma var. Bence MATLAB'ın avantajları, alana özgü özel uygulamalarda yatmaktadır. Bazı örnekler:
Akışkanlar dinamiği araştırmalarına yardımcı olan düzene benzer fonksiyonlar.
Görüntü işleme araç seti gibi araç kutuları. Havza algoritması gibi araçların eşdeğer bir uygulamasını sağlayan bir R paketi bulamadım.
Bence MATLAB çok daha iyi etkileşimli grafik özellikleri sunuyor. Ancak, R'nin uygulamaya bağlı olarak daha iyi statik baskı kalitesinde grafikler ürettiğini düşünüyorum. MATLAB'ın sembolik matematik araç kutusu da Ryacas veya rSymPy gibi R eşdeğerlerinden daha iyi entegre ve daha yeteneklidir. MATLAB derleyicisinin varlığı, MATLAB koduna dayalı sistemlerin MATLAB ortamından bağımsız olarak dağıtılmasına izin verir - kullanılabilirliği ne kadar para harcamanız gerektiğine bağlı olacaktır.
Dikkat etmem gereken başka bir şey de MATLAB hata ayıklayıcısının çalıştığım en iyilerden biri olduğudur.
R ile gördüğüm temel avantaj, sistemin açıklığı ve genişletilebilme kolaylığıdır. Bu, CRAN'da inanılmaz çeşitlilikte paketlerle sonuçlandı. Mathworks'ün kullanıcı destekli araç kutuları deposunu da koruduğunu biliyorum ve çok fazla kullanmadığım için adil bir karşılaştırma yapamıyorum.
R'nin açıklığı da derlenmiş kodda bağlantıya uzanır. Bir süre önce Fortran'da yazılmış bir modelim vardı ve girdi veya süreç sonuçlarını hazırlamak için R veya MATLAB'ı ön uç olarak kullanma arasında karar vermeye çalışıyordum. Derlenmiş kod MEX arayüzü hakkında okuma bir saat geçirdim. Arayüzü yönetmek için karmaşık bir işaretçi hokkabazlığı yapan ayrı bir Fortran rutini yazmam ve sürdürmem gerektiğini bulduğumda, MATLAB'ı rafa kaldırdım.
R arayüzü .Fortran ([altyordam adı], [argüman listesi]) çağrısından oluşur ve daha hızlı ve daha temizdir.
MATLAB'ın R'ye göre en büyük avantajlarından biri MATLAB belgelerinin kalitesidir. Açık kaynak olan R, bu açıdan birçok açık kaynak projesinde ortak bir özelliktir.
Ancak R çok faydalı bir ortam ve dildir. Biyoinformatik topluluğunda yaygın olarak kullanılmaktadır ve bu alanda yararlı birçok pakete sahiptir.
R'ye bir alternatif, MATLAB'a çok benzeyen Octave'dir ( http://www.gnu.org/software/octave/ ), MATLAB komut dosyalarını çalıştırabilir.
Deneyimlerime göre MATLAB'dan Python'a geçiş daha kolay bir geçiş - numpy / scipy'li Python , stil ve özellikler açısından R'den daha MATLAB'a daha yakın . Octave ve Scilab açık kaynaklı doğrudan MATLAB klonları da var .
MATLAB'ın R'nin yapamayacağı çok şey var - benim alanımda MATLAB gerçek zamanlı veri toplama için çok kullanılıyor - çoğu donanım şirketi MATLAB arayüzlerini içeriyor. UR ile bu mümkün olsa da, çok daha fazla ilgili olacağını hayal edin. Ayrıca Simulink, R'den eksik olduğunu düşündüğüm bir işlevsellik alanı sağlıyor. Eminim daha fazlası var ama R'ye aşina değilim.
Kısa cevap: hayır, elbette hayır. Herhangi bir matematiksel yazılım paketi kümesinin çakışmaları olsa da, her zaman belirli sorun alanlarına karşı önyargıları olacaktır. Bu önyargılar, bu paketlerden birini kullanmak isteyip istemediğinizi kuvvetle gösterir.
MATLAB'ın R'nin yapamayacağı şeylere bir örnek, sinyal işleme / edinme ve kontrol için gerçek zamanlı donanıma arabirimdir. MATLAB'deki bir Simulink modeli, ölçülen verileri girdi olarak alan ve uygun çıkışları hesaplayan gerçek bir sistemde yürütülecek kodu derlemeden önce hem makinenizde simülasyonda çalışacak şekilde yapılandırılabilir (bir kontrol sisteminin simülasyonundan önce tam olarak çalışmaktadır. bir). Makinenizdeki uygun donanım kartıyla, gerçek zamanlı kontrol sistemlerini bir PC üzerinden çalıştırabilirsiniz.
Buna karşılık, R, MATLAB'ın neler yapabileceğinden daha iyi performans gösterdiğinden emin olduğum istatistiklerin rolünde sıkı bir şekilde ayarlanmış gibi görünüyor. Benzer şekilde, Mathematica sembolik matematikte MATLAB'dan daha iyidir; Python genel programlamada MATLAB'dan daha iyidir; gnuplot aslında grafik oluşturmada hepsinden daha iyidir (er, sanırım); ve bunun gibi.
Yukarıda verilen cevapların çoğuna katılıyorum. Cevap MATLAB ve R yeteneklerinin farklılığına özgü olduğundan, çok önemli bir konuya değineceğim: MATLAB, bir JVM içerir ve Java ile kusursuz ve sağlam birlikte çalışabilirliğe sahiptir. Java'nın geniş kütüphane evreninin tamamına MATLAB kullanıcısı erişebilir. MATLAB IDE neredeyse fakir bir adamın Tutulması olarak kullanılabilir. Buna karşılık, rJava, yaratıcısının (Roman Francois) çok değerli çabalarına rağmen çok olgunlaşmamış.
Yapamayız çünkü müşterilerimiz tarafından beklenen / gereklidir.
Sqldf paketi ile, R sadece istatistikleri değil, aynı zamanda makinenizde yeterli RAM olduğunu varsayarak ciddi veri madenciliğini de yapabilir.
RServe paketi ile R normal bir TCP / IP sunucusu olur; böylece R'yi java'dan (veya API'nız varsa başka bir dilden) çağırabilirsiniz. Ayrıca R'de java veya R'yi çağırmak için bir paket var.
Hem MATLAB hem de R'nin bir kullanıcısı olarak, bunların çok farklı uygulamalar olduğunu düşünüyorum. Kendim bilgisayar bilimi, vb. Hakkında bir geçmişim var ve R'nin istatistikçiler için istatistikçiler tarafından olduğunu, MATLAB'ın ise programcılar için programcılar olduğunu düşünmesine yardımcı olamıyorum.
R, her türlü istatistiksel şeyi görselleştirmeyi ve hesaplamayı çok kolaylaştırır, ancak bana bağlıysa, sinyal işleme ile ilgili herhangi bir şeyi uygulamak için kullanmam.
Özetlemek gerekirse, istatistik yapmak istiyorsanız, R tuşunu kullanın. Programlamak istiyorsanız, MATLAB veya bir programlama dili kullanın.
R
bir programlama dilidir.
Etkileşimli grafik desteği matlab'da R'den çok daha iyi. Matlab'ı dil olarak nefret ediyorum, ancak kullanıcılarının fare işlemleriyle verileri nasıl keşfedebileceğini gördüğümde kıskanıyorum, xlim
vb. İçin yeni değerlerle komutları tekrarlamakla meşgulüm . Matlab ayrıca çok panelli grafikleri görev için kullanılan R yöntemlerinden çok daha iyi işler. Genel olarak, R grafikleri 1960'ların hissine sahiptir. Yayın için iyidir, ancak verilerin interaktif keşfi için en iyi çözüm değildir.