2010-05-12 12 views
8

NET'te R veya MATLAB'ın istatistiksel ve veri analizi işlevlerini kullanması gerekecek bir program yazıyorum. R kullanmıştım ama şimdi bir .NET derleyicisine sahip olduğu için MATLAB'a geçmeyi düşünürken, R sadece COM nesnesi üzerinden arayüz yapabilir. Kimse yoldan gitmeyi tavsiye edebilir mi? MATLAB'ın R'den daha pahalı olduğunu biliyorum (R ücretsizdir) ama bunun daha kolay bir gelişme döngüsüne dönüşebileceğini düşünüyorum..NET MATLAB veya R?

+0

Eğer R'ın GPL2 lisansı yazılımı ile uyumlu olduğundan emin olmak gerekir R ile F # kullanabilirsiniz nasıl. –

cevap

3

Üç yaklaşım açıkladınız: Matlab için .NET Builder kullanın, Matlab'ı bir COM nesnesi olarak kullanın ve R'yi bir COM nesnesi olarak kullanın. Maliyetler her biri için farklıdır.

Matlab .NET Builder, daha sonra doğrudan .NET'ten arama yapabileceğiniz .NET nesneleri oluşturmanızı sağlar. Bunun bir avantajı, bu nesneleri hedefler üzerinde serbestçe yeniden dağıtılabilen Mathworks MCR'yi yükleyerek Matlab'a sahip olmayan makinelere yerleştirebilirsiniz. Bu size bir Matlab lisansına ve Matlab .NET Builder'ın maliyetine mal olacaktır. Yorumlarda, Sharpie bu yaklaşım için toplam $ 12.8K'lık bir fiyat teklifi veriyor ve Richie Cotton, MCR için 200 MB teklif veriyor.

Başka bir yaklaşım, Matlab'ı .NET kodunuzdan COM nesnesi olarak çağırmaktır. Bu yaklaşım here için bazı belgeler var. .NET oluşturucu satın almanız gerekmediğinden, bu bir makine için daha ucuzdur. Ancak, pek çok hedefe dağıtmak istiyorsanız, her biri için Matlab'ı (artı uygulanabilir araç kutuları) satın almanız gerekir.

Hiç R kullanmamıştım, ancak ikinci yaklaşıma benziyor, R'yi COM nesnesi olarak çağırıyor, here belgelendi. Ve elbette R'yi tüm hedef makinelerinize kolayca yerleştirebilirsiniz.

son iki yaklaşım eşit zor kolay tahmin ediyorum, bu yüzden gerek rutinleri ya dilde mevcut olup olmadığını, ücretsiz çok iyi bir fiyattır.

+2

Oldukça iyi bir karşılaştırma. En son kontrol ettiğimde, Matlab seçeneği ~ 2k artı derleyici için ek bir 10k ve her bir istatistik araç kutusu için 800 $ 'a mal olur. Uygulamalarınızın Matlab Derlenmiş Çalışma Zamanı (MCR) kitaplığının bir kopyasıyla birlikte dağıtılması gerekir. R rotası ile, uygulama ile birlikte R'yi konuşlandırmanız gerekecektir, bu da muhtemelen MCR'den daha küçük ve daha zor yeniden paketlenecektir. Ama bedava. Artı, kişisel yüksek önyargılı görüş: R, Matlab istatistik araç kutusu ile zemini siliyor. – Sharpie

+0

Oh, bir şey, Matlab'ı bir ActiveX sunucusu olarak çağırmak gibi bir uygulama, uygulamanın dağıtıldığı her bir makineye yüklenebilmesi için Matlab'ın bir kopyasına ihtiyaç duyabileceğine benziyor. – Sharpie

+0

@Sharpie: Matlab derleyicisiyle oluşturulan uygulamalar, tam Matlab lisansından ziyade MCR'ye (temel olarak Matlab olmadan ön yüze) ihtiyaç duyar. MCR'yi uygulamanızla serbestçe dağıtabilirsiniz. Programınızın boyutuna ~ 200Mb ekler. –

2

Hangi yoldan gitmek, kullanmak istediğiniz istatistik rutinlerine bağlıdır. Sharpie'nin de belirttiği gibi, Matlab İstatistikleri araç kutusu, R + 2000 paketleri kadar eksiksiz bir yere sahip değil. (Matlab Merkezi Dosya Değişiminde adil bir miktarda istatistik kodu olmasına rağmen.) Kendinizi Matlab'da düşük düzeyli istatistik yordamlarını kodlamak zorunda kalıyorsanız, yanlış seçimi seçtiniz.

Matlab-.NET arabirimi kaygan ve R- .NET'den biraz daha hoş, bu nedenle büyük olasılıkla biraz geliştirme süresi kazandıracaksınız. Aslında, mevcut işyerlerimiz tek başına istatistik analizleri için R ve .NET uygulamaları ile entegrasyon için Matlab'dır.

Maliyetinize gelince, işvereniniz yazılım için ödeme yapmaktan memnuniyet duyuyorsa, endişelenmeyin. Kendiniz için ödeme yapıyorsanız, R. ile gidin.