Plotten von Daten aus C++ mit Matlab
-
Also es ist rein textuell?
Interessant sind für dich schon einmal die Header <fstream> und <iostream>.
#include <fstream> using namespace std; // ... ofstream fout("Daten.mat"); for(int i = 0; i < AnzahlDaten; ++i){ fout << Daten[i].First << " " << Daten[i].Second << "\n"; } fout.close(); // ...
-
*.mat ist binary. Das Format ist offen beschrieben, aber das will man sich nicht antun wenn es nicht unbedingt sein muss. Ich würde mir mal libmatio anschauen.
-
delete me
-
Danke für die Antworten.
Aber was genau meint ihr mit "rein texutell"?Ist also das, was Fellhuhn mir geschrieben hat, nicht benutzbar, wenn jetzt *.mat rein binär ist?
Gruss
-
Richtig. Du müsstest wissen wie die binäre Datei genau aufgebaut ist, wie groß jedes Feld ist und dies auch so abspeichern. Kein geringer Aufwand. Wenn es dafür schon Bibliotheken gibt (und "libmatio" klingt danach), sollte man die doch auch benutzen.
-
Falls du trotzdem dir mal das MatLab Format anschauen willst, empfehle ich www.wotsit.org .
Hier solltest du fündig werden, wie die *.mat Dateien aufgebaut sind.Grüssli
-
Ev. kannst Du auch MatLab "automatisieren" bzw. exportierte Funktionen nutzen.
http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/apiref/bqoqnz0.html
Wenn ich mich nicht irre, sollte das weiterhelfen.
Simon
-
Ich würde Deinen Datengenerator, der in C++ geschrieben ist, direkt von Matlab aus aufrufen. Matlab bietet extra eine API (Mex-API) an, mit der man sehr einfach Daten aus C/C++ (eigentlich ist es eine C-API, aber C++ Programme lassen sich trotzdem direkt einbinden) in Matlab hineinmekommen kann. Der Aufruf des C++-Programms gestalltet sich dann wie der Aufruf einer Matlab-Funktion.
Hier ist die API beschrieben, und das hier ist der Einsprungspunkt für eigene Mex-Funktionen (sozusagen die main).
-
So, alles hat wunderbar geklappt. Danke euch.
-
Engin84 schrieb:
So, alles hat wunderbar geklappt. Danke euch.
Wie sieht denn nun die Lsg. aus?
Simon