Verfasst am: 25.09.2010, 12:49
Titel: Matlab-Function in C# ausführen
Hallo,
ich würde gerne eine in Matlab geschriebene Funktion in C# ausführen lassen. Dabei werden die Werte einer Float-Liste (FPoint-List) in C# (2 Spalten), also quasi ein Array und einzelne Variablenwerte für die Matlab-Funktion benötigt.
Die Matlab-Funktion soll nach der Übergabe der Werte ausgeführt werden und gibt dann eine (nx2)-Matrix wieder. Die Spalten enthalten jeweils Zahlenwerte. Diese Werte benötige ich in C Sharp. Kann mir da jemand weiterhelfen?
danke für die schnelle Antwort. Für die Nutzung des 1. Links muss ich bei Mathworks angemeldet sein und eine Schulung/ Kurs passt mir nicht so ganz.
Ich könnte ja auch einen Umweg über eine Datei gehen, in der ich die Daten von C# abspeichere und sie dann mit Matlab einlese, berechne und in einer anderen Datei wieder abspeichere. Aber ich würde die Daten gerne direkt übergeben.
das war ein Link auf die Online-Dokumentation. Du kannst die Doku aber auch direkt aus MATLAB heraus abrufen.
In der Hilfe auf das Contents-Tab gehen und dann:
MATLAB Builder NE (--> evtl. User's Guide, je nach MATLAB Version) --> Sample Applications in C#.
Hallo,
so ich bin jetzt schon einmal soweit, dass ich eine dll erzeugt habe. Nun möchte ich diese noch in C# nutzen.
Meine Matlab-Function sieht wiefolgt aus:
Von dieser Funktion liegt mir nun die DLL vor.
Nun möchte ich diese in C# verwenden:
//x-Vektor
double[] xData = new double[5];
xData[0] = 0; xData[1] = 100; xData[2] = 100; xData[3] = 0;
xData[4] = 0;
MWArray x = new MWNumericArray(5,1,xData) ;
//y-Vektor
double[] yData = new double[5];
yData[0] = 0; yData[1] = 0; yData[2] = 50; yData[3] = 50; yData[4] = 0;
MWArray y = new MWNumericArray(5, 1, yData);
//x1,y1,xh,yh,B,H,xi,yi
double[] x1Data = new double[1];
x1Data[0] = 0;
MWArray x1 = new MWNumericArray(1, 1, x1Data);
// Der Übersichlichkeit halber lass ich das ganze mal für //y1,xh,yh,B,H,xi,yi weg
Leider Bekomme ich ständig Fehlermeldungen (Der Wert darf nicht Null sein,Parametername: SOURCE,...). Ich hoffe es kennt sich jemand (mir fällt da HARALD ein ) damit aus...
vg
Coja
Hallo,
si ich habs jetzt hinbekommen. Ein paar Anreguhngen für euch:
Zur Erzeugung der DLL nutzt ihr den BUILDER NE in Matlab.
Diese DLL könnt ihr dann in C# nutzen und euch eine Klasse erzeugen, Methoden aufrufen... dabei solltet ihr euch unbedingt mit der Verwendung von MWArray, MWCellArray, MWNumericArray,....
auseinandersetzeten.
vg
Coja
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.