Ich kann mit der matlab.Feval() Funktion durch Angabe des Namens meiner .m Datei eine Funktion im C# problemlos aufrufen.
Mein Problem: Wie kann ich die entsprechende Funktion aufrufen wenn mehrere Funktionen in einer Datei definiert sind? Es wird immer die erste Funktion aufgerufen.
Versetz Dich mal in die Lage, dass das jemand liest, der Deinen Code und Deine Gedanken nicht kennt.
Denke dann wird Dir selbst klar, dass Dir kaum einer folgen kann 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ok.
matlab.Feval("MatlabTest", 1, out result2, Convert.ToInt16(textVarA.Text), Convert.ToInt16(textVarB.Text), Convert.ToInt16(textVarC.Text));
Dies ist mein Funktionsaufruf, wobei "MatlabTest" der Name meiner .m-Matlab-Datei ist. In dieser Datei sind mehere Funktionen enthalten. Nun will ich irgendeine dieser Funktionen aufrufen, ohne dass ich jede einzelne Funktion in eine eigene Datei packen muss.
Es ist schon ne Weile her, dass ich mit Matlab gearbeitet habe. Aber ich meine, du kannst nicht eine spezielle Funktion in einem Skript aufrufen.
Das Skript (also .m-file) ist ja deine "Funktion".
Gibt also keine Möglichkeit in eine Subfunktion zu springen? Wie in dem Fall z.B. zu AddMatlabTest() ?
function [ result] = SubMatlabTest( a, b, c)
result = (a - b) * c;
end
function [ result] = AddMatlabTest( a, b, c)
result = (a + b) * c;
end
Hallo,
schon mal drüber nachgedacht aus dem m-file ne .dll zu bilden?
http://www.codeproject.com/Articles/5468/ways-of-integrating-MATLAB-with-the-NET
Gruß
Kai
.Net 😁