Ich schreibe ein Programm in .NET, das die statistischen und Datenanalysefunktionen von R oder MATLAB verwenden muss. Ich habe R verwendet, aber jetzt überlege ich, zu MATLAB zu gehen, da es einen .Net-Compiler hat, während R nur über COM-Objekte eine Schnittstelle haben kann. Kann jemand empfehlen, in beide Richtungen zu gehen? Ich weiß, dass MATLAB unendlich teurer ist als R (da R frei ist), aber ich denke, dass dies zu einem einfacheren Entwicklungszyklus führen könnte?
Sie haben drei Ansätze beschrieben: Verwenden Sie .NET Builder für Matlab, verwenden Sie Matlab als COM-Objekt und verwenden Sie R als COM-Objekt. Die Kosten sind für jeden unterschiedlich.
Mit Matlab .NET Builder können Sie .NET-Objekte erstellen, die Sie dann direkt von .NET aufrufen können. Ein Vorteil besteht darin, dass Sie diese Objekte auf Computern bereitstellen können, auf denen Matlab nicht installiert ist, indem Sie die frei verteilbare Mathworks MCR auf den Zielen installieren. Dies kostet Sie eine Matlab Lizenz plus die Kosten für den Matlab .NET Builder. In den Kommentaren zitiert Sharpie einen Gesamtaufwand von ~ 12,8 K für diesen Ansatz und Richie Cotton zitiert ~ 200 MB für den MCR.
Ein anderer Ansatz besteht darin, Matlab als COM-Objekt aus Ihrem .NET-Code zu nennen. Es gibt einige Dokumentationen für diesen Ansatz hier . Dies ist für eine Maschine billiger, da Sie .NET Builder nicht kaufen müssen. Wenn Sie jedoch auf viele Ziele verteilen möchten, müssen Sie Matlab (plus die entsprechenden Toolboxen) für jeweils $ 2,8K / Maschine kaufen.
Ich habe noch nie R verwendet, aber es sieht so aus, als ob der letztere Ansatz, R als ein COM-Objekt zu bezeichnen, hier . Und natürlich können Sie R einfach auf allen Ihren Zielmaschinen bereitstellen.
Ich denke, die beiden letzten Ansätze sind einfach schwierig . Wenn also die benötigten Routinen in beiden Sprachen verfügbar sind, ist free ein sehr guter Preis.
Welchen Weg Sie gehen, hängt von den statistischen Routinen ab, die Sie verwenden möchten. Wie von Sharpie erwähnt, ist die Matlab Stats Toolbox nicht annähernd so vollständig wie R + 2000-Pakete. (Obwohl es im Matlab Central File Exchange ziemlich viel Statistikcode gibt.) Wenn Sie in Matlab Low-Level-Statistikroutinen programmieren müssen, dann haben Sie die falsche Wahl getroffen.
Die Matlab-.NET-Schnittstelle ist glatt und ein bisschen netter als R-.NET, also werden Sie wahrscheinlich ein bisschen Entwicklungszeit damit sparen. In der Tat ist unser aktueller Arbeitsplatz eingerichtet R für Stand-Alone-Statistik-Analysen und Matlab für die Integration mit .NET-Anwendungen.
Was die Kosten anbetrifft, wenn Ihr Arbeitgeber glücklich ist, für die Software zu zahlen, sorgen Sie sich nicht darüber. Wenn Sie selbst dafür bezahlen, gehen Sie mit R.:)
Wenn Sie R von .NET aufrufen möchten, finden Sie R.NET von CodePlex . Weitere Informationen zu StackOverflow finden Sie unter Rufen Sie R (Programmiersprache) von .net auf.