T
Hallo,
ich danke Euch für Eure ausführlichen und schnellen Antworten. Die Klasse selbst, soll ja nur die Daten auslesen und zwar die Meß- und Zeitpunkte die der Benutzer haben will. Das was zurückgegeben wird, wird dann jedoch von anderen Klassen weiterverarbeitet und zwar als Matrix.(Also ist das mit dem Zeiger wahrscheinlich eine sehr gute Sache)
Hinter der ganzen Sache steckt ein modularer Aufbau mit folgenden Bestandteilen:
1. Data-Reader primary component: In der gibt es secodary components die zum Auslesen von Daten aus Dateien verwendet werden. Für den Anfang wird es jedoch nur der Binary-File Reader sein, von dem ich schon sprach. Allen diesen Modulen wird gemeinsam sein, dass sie die gelesenen Files als Matrizen zurückgeben müssen in der Form, wie ich es oben mit der Matrix angedeutet habe.
2. Analysation Tool primary component: In der gibt es secondary components, die die ausgelesenen Matrizen weiterverarbeiten z.B. in dem sie eine PCA oder ICA für ein Preprocessing drüberlaufen lassen und das Ergebnis später an ein beliebig dahintergeschaltetes statistisches (oder was auch immer) Analysetool weiterleiten.
3. Coordinating Framework: dass wie der Name schon sagt die Berechnungen nach den Benutzereingaben ausführt. Der Benutzer soll ein UI verwenden von dem ich noch nicht so ganz genau weiß, wie es letztendlich aussehen wird, weil es eine Vielzahl von Parametern zu setzen gibt. Mir schwebt irgendwas zwischen GUI und TUI vor vielleicht auch mit einer CLI Option, weiß noch nicht so ganz). Die Sache ist die, dass diese Verarbeitung über zwei Modi laufen kann: global und step bei step.
Das Problem mit dem "Skalar" (@thordk du hast recht, dass kann man mathematisch nicht durcheinanderwerfen, war wohl der falsche Ausdruck, ich meinte tatsächlich so was wie eine 1 x 1 Matrix, wie du gleich sehen wirst) kann dann auftreten, wenn ich im step-by-step Modus nur einen Meßpunkt lese. Dann habe ich noch nicht einmal mehr einen Vektor, gehandelt werden muss das aber wie gehabt, da ja die Tools hier jeden Zeitschritt nacheinander rechnen.Der step-by-step modus simuliert also so etwas wie eine Online-Meßsituation. Im global Modus ist die größe der Matrix hingegen enorm (um die 65 x 2000 im Schnitt).
Es gibt noch ein paar andere Komponenten, die hier aber nicht hereinspielen. Dazu gehören zum Beispiel eine Templatelib die Templatematrizen (meist 3 x 3) beinhaltet, die Teilweise von den Tools benötigt werden oder auch Adjustment-Templates die vorgefertigte Einstellungen bereits enthalten.
Übrigens verwende ich neben der normalen C++ lib noch die IT++ oben drauf, weil da schon viele Signalverarbeitungsfunktionen dabei sind.
Wie gesagt, bin ich gerade in der Planung und werde sicherlich noch das ein oder andere zu posten haben. Danke Euch noch mal für die Möglichkeit des Austauschs...
sicherlich bis bald
Tranquillity