Plotten von Daten aus C++ mit Matlab
-
Salü Fellhuhn
Ja, ich hab das noch nie gemacht, daher häng ich am Anfang schon.
Also, ich muss eine Datei erzeugen, die Daten.mat heisst.
Diese Datei soll den Array mit 2 Zeilen und N Spalten enthalten.
Den Array hab ich erzeugt.Jetzt frag ich mich einfach, wie ich diesen Array in die Datei "".mat speichern kann, damit ich diese dann mit Matlab aufrufen kann...
-
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