|
|
Eine Matlab Funktion von c#, csharp aufrufen. |
|
Mueller |
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 21.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.01.2017, 16:09
Titel: Eine Matlab Funktion von c#, csharp aufrufen.
|
|
|
|
|
Hallo,
Ich möchte eine Schnittstelle zwischen Matlab und c# erzeugen -> dafür muss ich mein M-File in eine DLL Library übersetzen.
Ich gebe im Command Fenster deploytool ein.
Ich wähle Libary Compiler Es öffnet sich ein Fenster.
Bei Typ wähle ich .NET Assembly.
Bei Add exported functions wähle ich meine Matlab Funktion.
Aber wie kann ich mein derzeitiges Script siehe Anhang in eine Funktion
Umwandeln? Damit meine ich eine Funktion die als Übergabeparameter den Input also mein txt. File braucht und als Ausgabe/Ergebnis die Diagramme hat/liefert? Weiters setze ich den Haken bei Runtime included in package. Müssen noch weitere Einstellungen getroffen werden?
Wie sieht der dazugehörende c# Code aus bzw. die dll Referenzierung in meinem .NET project aus?
Ich habe zwei interessante Links gefunden die mir den Sachinhalt ein wenig näher gebracht haben.
https://www.codeproject.com/article.....ating-matlab-with-the-net
http://stackoverflow.com/questions/.....lab-function-from-c-sharp
Ps: Danke Jan für deine bisherige Hilfe/Info. Ich habe mir in der kurzen Zeit recht viel Wissen angeeignet. Danke.
Danke.
Beschreibung: |
Mein Input (wie in der Vergangenheit) |
|
Download |
Dateiname: |
aaaa.txt |
Dateigröße: |
6.22 KB |
Heruntergeladen: |
352 mal |
Beschreibung: |
Mein Script / leider keine Funktion. |
|
Download |
Dateiname: |
dez1.m |
Dateigröße: |
37.86 KB |
Heruntergeladen: |
345 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.01.2017, 16:42
Titel:
|
|
|
|
Mueller |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 21.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.01.2017, 18:38
Titel:
|
|
Danke für die Links.[url] https://de.mathworks.com/help/compi.....-c-application.html[/url] Bei dieser Integration bin ich gestern schon ausgestiegen :/ Irgendetwas hat c# nicht gefunden.
Ich hab einmal gelesen, ich bräuchte bei meinem Script einfach nur function in der ersten Zeile hinzufügen sodass das Script als eine Funktion behandelt wird??? Klingt sehr strange..
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.01.2017, 19:27
Titel:
|
|
Hallo,
Zitat: |
Bei dieser Integration bin ich gestern schon ausgestiegen :/ Irgendetwas hat c# nicht gefunden. |
Das ist oft nur ein kleines Problem. Bitte die genaue Fehlermeldung angeben.
Zitat: |
Ich hab einmal gelesen, ich bräuchte bei meinem Script einfach nur function in der ersten Zeile hinzufügen sodass das Script als eine Funktion behandelt wird??? Klingt sehr strange.. |
Das ist so, siehe auch meine Nachricht. Allerdings hat die Funktion damit einen eigenen Workspace, was die Behandlung von Variablen deutlich verändert. In der Doku findest du auch dazu sicher mehr.
Integration in .NET oder andere Plattformen ist nicht das einfachste, gerade wenn man sich nicht tief in dieser Plattform auskennt. Bei Lizenzen unter Wartung kann da auch der Technische Support von MathWorks weiterhelfen.
Grüße,
Harald
|
|
|
Mueller |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 21.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.01.2017, 13:23
Titel:
|
|
Ich versuche gerade aus meinem Script eine Funktion zu kreieren.
Am Anfang habe ich folgendes hinzugefügt:
Zitat: |
filename = {'aaaa.txt'} ;
function results = dez1(fileName) |
bzw am Schluss:
Aber was ist mein result? Mein result sollte der ganze Plot sein..
Die Beschreibung für Funktionen habe ich mir durchgelesen.
Danke
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.01.2017, 13:31
Titel:
|
|
Hallo,
der Funktionsdeklaration muss ganz an den Anfang der Datei, nicht irgendwo in die Mitte.
Der Aufruf erfolgt dann typischerweise aus dem Command Window, einem Skript, oder einer anderen Funktion heraus.
Zitat: |
Aber was ist mein result? Mein result sollte der ganze Plot sein.. |
Innerhalb von MATLAB kannst du ein Handle auf die Figure übergeben, also z.B.
Zu .NET hin müsstest du wie gesagt mit WebFigures arbeiten. Da das aufwändiger ist, würde ich zunächst versuchen, numerische Daten zu übergeben.
Grüße,
Harald
|
|
|
Mueller |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 21.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.01.2017, 13:45
Titel:
|
|
Danke für die schnelle Antwort. Den Function Befehl wurde ganz am Anfang implementiert. Das
wurde soeben auch hinzugefügt trotzdem bekomme ich folgende Fehlermeldung:
An c# möchte ich keine Plots übergeben. Eigentlich wollte ich im c#, der Matlab exe den Input (.txt) File übergeben. Das war meine Idee. Anders ausgedrückt c# ruft die Matlab exe auf und übergibt sie das txt-File
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.01.2017, 13:51
Titel:
|
|
Hallo,
die Fehlermeldung würde ich so interpretieren, dass du in Zeile 727 (und nicht in Zeile 1) die Funktion zu definieren versuchst.
Falls die Probleme weiterhin bestehen, bitte ein (Minimal-)Beispiel posten, in dem das Problem auftritt.
Mit anderen Worten, an C# wird gar nichts zurückgegeben? Dann bräuchtest du gar kein result. Ob Plots da "normal" geöffnet werden, habe ich noch nicht ausprobiert.
Grüße,
Harald
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.01.2017, 15:01
Titel:
|
|
Hallo,
gerade probiert: Plots werden "normal" geöffnet.
Grüße,
Harald
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|