WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Externes Signal mit C++ über Mex-File in Matlab

 

MatMarkGa
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2013, 12:07     Titel: Externes Signal mit C++ über Mex-File in Matlab
  Antworten mit Zitat      
Hallo allerseits.

Ich habe ein C++ program mit Visual Studios 10 zur verfügung, dass Signale von einem externen Gerät aufzeichnet bzw.
in ein Textfile schreibt. Nun muss ich diese irgendwie in Matlab bringen um die Signale weiter zu verarbeiten. Ich dachte mir dabei, dass ich anstatt
des textfiles ein MEX-File mit VS10 erstelle um es dann in Matlab weiter zu verwenden. Jedoch helfen mir all die Tutorien im net nicht und ich weiss
nicht weiter. Einziger Erungenschaft ist folgende:

Code:
%Errungenschaft
#include <math.h>
#include <matrix.h>
#include <mex.h>

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
  mexPrintf("Hello World!\n");
  return;
}


Mit mex helloworld.cpp in der Matlab console kann ich zumindest
mal ein MEX-File erstellen. Aber wie binde ich dies in mein C++ File ein?
das etwa so aussieht:

Code:
%C++ File
#include...

int main(int argc, const char* argv[])
{
...  
for (i = 0, i < 1000, i++)
  a = getData()
  std::cout << a << endl
end
...
  return 0;
}
 


Bitte um Hilfe, Tip oder sonst irgend etwas dass mich weiterbringt.
Private Nachricht senden Benutzer-Profile anzeigen


EliteTUM
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 21.04.11
Wohnort: München
Version: ---
     Beitrag Verfasst am: 20.01.2014, 19:52     Titel:
  Antworten mit Zitat      
Hallo MatMarkGa,

ich bin nicht sicher ob ich deinen bisherigen Workflow und deinen Wunsch verstanden habe, ich frage also lieber nochmal nach:

Bisher: Du hast ein C++ - Programm geschrieben, welches Signale von Hardware einliest und die Werte (mit Zeit???) in eine Textfile speichert.

Korrekt?

Dein Wunsch: Anstatt einer Textdatei möchtest du eine MEX-File erzeugen, in der die selben Infos stehen wie bisher in der Textdatei und du möchtest diese MEX-File in Simulink (?) als Signalquelle verwenden?

Ich glaube du hast da etwas falsch verstanden ODER du willst es extrem umständlich machen.

Du solltest vorher folgende Fragen klären:

Willst du die Werte in MATLAB oder in Simulink verarbeiten?

Für mich klingt es so, als verwechelst du MEX-Files und MAT-Files. Kann das sein? Eine MEX-File ist technisch ungefähr das gleiche wie eine DLL-Datei. Also eine Sammlung von vorkompilierten Funktionen, welche aufgerufen werden können, ohne dass die genaue Implementierung bekannt ist (weil ja compiliert).

Lösungsmöglichkeiten, die mir auf Anhieb einfallen:

1. Du kannst in MATLAB die Textdatei in den Workspace importieren (mit dem Import-Assistenten!).
2. Du kannst ein MATLAB-Skript schreiben, welches die Textdatei öffnet und einliest (Zeile für Zeile).
3. Du kannst deinen Code so bearbeiten und mit MATLAB-Libarries zusammen linken, dass du aus deinem C++-Programm statt einer Textfile direkt (!) eine MAT-File erzeugen kannst, welche von MATLAB importiert/geöffnet werden kann.
4. Du schreibst eine MEX-Funktion, welche die Textdatei einliest und die Werte als Signal bereitstellt.

Die Lösungen 1 bis 4 sind nach aufsteigender Komplexität/Aufwand sortiert. Aus deinen bisherigen Beschreibungen würde ich 1. oder 2. empfehlen.
_________________

- EliteTUM
_____________________________________
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.