Zusammenarbeiten zwischen Matlab und C #
-
10-07-2019 - |
Frage
Nach dem um das Internet spähen sieht es aus wie es möglich ist, zwischen C # und Matlab Interop. Ich frage mich, wenn jemand Erfolg damit gehabt hat und was sie taten dies zu tun. Wenn möglich, zieht es irgendwie ohne die Verwendung von COM aus. Vielen Dank für Ihre Zeit.
Lösung
Ja, durchaus möglich. Obwohl ich beenden die C-Schnittstelle nach oben mit und in das Aufrufen eines Mixed-Mode-DLL (und immer C # in dem nennen ... aber das war, weil ich auch mit einem anderen C-Code wurde eine Schnittstelle). Es ist ganz einfach. Auf Computern, auf denen Sie Ihr Programm ausführen möchten, müssen Sie Matlab Runtime MCRInstaller.exe.
installierenedit: entfernt Defekten Link
Andere Tipps
Beginnend mit der R2009a Veröffentlichung von MATLAB können .NET-Objekte aus MATLAB aufgerufen werden:
http://www.mathworks.com/help/techdoc/matlab_external/ brpb5k6.html
In älteren Versionen von MATLAB ist es möglich, .NET-Objekte von MATLAB für den Zugriff auf CCW mit:
http: //www.mathworks. com / support / Lösungen / data / 1-5U8HND.html? Lösung = 1-5U8HND
und die MATLAB-Engine von .NET:
Sie können auch die MATLAB Builder NE verwenden m-Code in .NET-Assemblies zu wickeln.
Ja, habe ich es geschafft, das zu tun, und es war meist schmerzlos.
Sie müssten Ihre MATLAB-Code für .NET kompilieren, führen MCR-Installer, Referenz MWArray.dll und die Einhaltung Code DLL in Ihrem .NET-Projekt (wie in pervious Antworten erklärt) und los geht.
Das einzige Ärgernis war die Gießen (und manchmal mehrere Gussteile!), Dass die Schnittstelle Kräfte, die auf Sie (in den Cast-Operatoren explizit verwenden)
Es ist ein freier und Open-Source-.NET-Wrapper für Matlab, und es ist sehr einfach: http://www.codeproject.com/KB/dotnet/matlabeng.aspx
Ich benutze dies.
In der R2009a Pre-Release Sie .NET-Assemblies aus MATLAB aufrufen können.
Ich bin mir nicht sicher, wie viel dies auf Sie zutrifft, sondern versuche, einen Blick in Matlab Executables oder MEX im Grunde ist es wirklich einfach, ein Programm in C oder Fortran zu schreiben, ist ein paar Bibliotheken und Funktionen, und dann können Sie verwenden Sie C oder Fortran-Funktion in Matlab
Wenn Sie bereit sind, Geld ausgeben, dies auch sein mag, was Sie brauchen:
http://www.mathworks.com/products/netbuilder/
Es kann Wrapper für Matlab-Code generieren, die es erlauben, sowohl von .NET und COM aufgerufen werden.