Verfasst am: 15.07.2012, 14:40
Titel: Fehler "mex at 207" beim erstellen eines mex-files
Hallo hallo,
ich versuche gerade verzweifelt ein mex-file zu erstellen und es will einfach nicht gelingen. Mein eigentliches Ziel ist es aus der NI-Messkarte USB-6009 Werte in MatLab einzulesen.
- Als erstes wähle ich einen Compiler aus mit mex-setup. ich habe den MatLab internen LCC wählen müssen da meine Version 2008a den von Visual Studio 2010 gar nicht erkennt.
- Dann gehe ich auf File -> New ->M-File und gebe mein C-Code ein
Ich danke Dir für deine schnelle Antwort. Es kommt tatsächlich nur diese Fehlermeldung. Allerdings hast Du recht das es als m-File abgespeichert wird.
Allerdings passiert das automatisch und ich finde keine Möglichkeit es als .c zu speichern. Muss ich den Code doch woanders erstellen? New -> M-File sagt ja eigentlich schon das MatLab ein m-File erstellen möchte.
wenn du speicherst, kannst du unten als Dateityp m-files oder all files auswählen. Du musst eben all files auswählen. Alternativ kannst du die Datei nachträglich umbenennen.
Ich danke Dir recht herzlich. Da verbringt man Stunden und liest Unmengen von Internet- und Buch-Seiten und dann ist die Lösung das Umbenennen von .m in .c und schon funktioniert alles. Es ist doch manchmal zum verzweifeln. Gut das man dabei immer noch vieles andere lernt und auf solche Prima Foren
mit hilfsbereiten Teilnehmern trifft wie hier grade geschehen.
Wenn ich unter File -> New -> M-File mein Code im Editor eingebe dann speichert MatLab bei mir die ganze Sache als .m im Current Directory wo ich einen Ordner für meine selbst gebastelten Funktionen habe.
Allerdings speichert MatLab es als M-File da es nicht von alleine merkt das ich in C programmiert habe. Die mex-Funktion sucht allerdings nach einer .c Datei und kann sie somit nicht finden. Wie Harald es beschrieben hat gibt es im Editor eine Möglichkeit es gleich als .c Datei abzuspeichern aber aus lauter Euphorie habe ich das noch gar nicht gefunden. Ich habe einfach im Current Directory meine Funktion umbenannt von ____ .m in ___ .c und fertig. Nun findet mex-___.c auch sofort meinen c-Code und verarbeitet die ganze Sache.
Ich hoffe ich habe nicht so viele falsche Dinge geschrieben. Ich glaube mex ist eine Funktion die eine Schnittstelle bietet zwischen MatLab und anderen Programmiersprachen. Es wird tatsächlich der c-code ausgeführt was manchmal auch gut für die Optimierung der Rechengeschwindigkeit ist. C ist in einigen Dingen schneller als MatLab.
Falls ich Blödsinn schreibe freue ich mich über Berichtigungen.
Mit freundlichen Grüßen
Billi
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.