Messdaten auswerten

  • So, habe mal das Programm mal angesehen, funktioniert schonmal super :)
    Habe noch ein paar Fragen:

    Quellcode

    1. header = nil;
    2. tabelle = nil;

    gibt die Werte der lvm-Datei von Header und Messwerten getrennt aus?

    Und diese Zeilen hier:

    Quellcode

    1. NSString *header = [tmp objectAtIndex:0];
    2. NSString *tabelle = [tmp objectAtIndex:1];

    erschließen sich mir noch nicht...
  • Wer nachdenkt, sieht klarer:

    Quellcode

    1. [self lvmLesen];
    2. id tmp1;
    3. for (tmp1 in self.headerDat)
    4. {
    5. NSLog(@"Header %@", tmp1);
    6. }
    7. id tabWert;
    8. for (tabWert in self.tabWerte)
    9. {
    10. NSLog(@"Tabelle %f", [tabWert floatValue]);
    11. }
    Alles anzeigen

    Dieser Abschnitt ruft erst einmal die Klasse (hoffe, dass das richtig ist) auf und gibt die Daten dann mit NSLog fein säuberlich in Header und Tabelle getrennt aus.

    Hm. Wenn ich mir das so anschaue, was ramo da freundlicherweise gezaubert hat, erkenne ich, dass da jemand dran gearbeitet hat, der von seinem Job wirklich was versteht 8)
    Wenn ich darf, werde ich mich nun versuchen, die Werte nach Spalte aufzuteilen und dann schließlich in den Plotter zu schieben...

    Danke nochmal!
  • Lateiner schrieb:

    Um diese aufzuzeichnen, benutze ich ein LabView-System der Firma National Instruments. Dieses gibt mir die Werte als lvm-Dateien aus, welche im Grunde genommen eine von Tabulatoren getrennte Tabelle mit Header sind. Diese Werte möchte ich vor allem in hochwertige Plots überführen und später dann auch direkt mit ihnen arbeiten (also Werte mitteln usw.)
    Ich bin etwas erstaunt und verwirrt. Wenn mich nicht alles täuscht, ist LabView genau dafür gemacht. Warum also das Rad neu erfinden? Ein paar Plots zu generieren und ein paar Werte zu mitteln dürfte in LabView nicht wesentlich schwieriger sein als in MATLAB. Das sollte in einem Arbeitstag gemacht sein (wovon der Hauptteil wohl Einarbeitung ist, wenn man's einmal hinbekommen hat ist es künftig eine Sache von Minuten).
  • Hallo Lateiner !

    Ich bin auch blutiger Anfänger und mein Beispiel ist sicher der schlechteste und ineffizienteste Weg das Problem zu lösen, aber ich verstehe deinen Drang loszulegen. Hier eine kurze Beschreibung was ich mir dabei gedacht habe:

    Quellcode

    1. - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    2. {
    3. // Insert code here to initialize your application
    4. [self lvmLesen];
    5. id tmp1;
    6. for (tmp1 in self.headerDat) // Ausgabe des Arrays "headerDat"
    7. {
    8. NSLog(@"Header %@", tmp1);
    9. }
    10. id tabWert;
    11. for (tabWert in self.tabWerte) // Ausgabe des Arrays "headerDat"
    12. {
    13. NSLog(@"Tabelle %f", [tabWert floatValue]);
    14. }
    15. }
    16. -(void)lvmLesen
    17. {
    18. NSString *path = [[NSBundle mainBundle]pathForResource:@"Messung" ofType:@"lvm"];
    19. NSURL *url = [[NSURL alloc]initFileURLWithPath:path];
    20. // Hier wird die Datei in einen String geschrieben.
    21. NSString *daten = [NSString stringWithContentsOfURL:url usedEncoding:nil error:nil];
    22. [url release];
    23. // Hier wird der String mittels Separator "Comment" in Header und Tabelle geteilt und in das "tmp" Array
    24. // geschrieben.
    25. NSArray *tmp = [daten componentsSeparatedByString:@"Comment"];
    26. NSString *header = [tmp objectAtIndex:0]; // String Header
    27. NSString *tabelle = [tmp objectAtIndex:1]; // String Tabelle
    28. NSCharacterSet *mSet = [NSCharacterSet characterSetWithCharactersInString:@"\t\n"];
    29. // Hier wird der "HeaderString" mittels Separator "LF" geteilt und Zeile für Zeile in das Array geschrieben
    30. self.headerDat = [header componentsSeparatedByString:@"\n"];
    31. // Hier wird der "TabellenString" mittels Charakterset geteilt und die Einzelwerte in das Array geschrieben
    32. self.tabWerte = [tabelle componentsSeparatedByCharactersInSet:mSet];
    33. tmp = nil;
    34. header = nil;
    35. tabelle = nil;
    36. }
    37. -(void)dealloc
    38. {
    39. self.headerDat = nil;
    40. self.tabWerte = nil;
    41. [super dealloc];
    42. }
    Alles anzeigen
  • Lateiner schrieb:

    Okay, ist das empfehlenswert? Glaube nämlich, dass das ein Bekannter hat, der kann's mir ausleihen....

    Ja, ist ein super Buch. Aber ich habe dafür gesorgt, dass es automatisch seinen Inhalt verändert, wenn man es ausleiht. :-]
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Lateiner schrieb:

    Okay, ist das empfehlenswert? Glaube nämlich, dass das ein Bekannter hat, der kann's mir ausleihen....

    Ja, ist ein super Buch. Aber ich habe dafür gesorgt, dass es automatisch seinen Inhalt verändert, wenn man es ausleiht. :-]

    :rolleyes: Immer diese Autoren... :D
    Mal im Ernst - ich hab's nun erhalten und *tusch* auf Amazon bestellt und kommt demnächst... Mal gespannt ob ich's damit verstehe :)

    Zu hugoderwolf:
    LabView ist auf dem Mac eine Beleidigung, genauso wie Matlab. Beides schlecht portierte Applikationen mit grauenhafter Performance. Und du darfst auch nicht vergessen, dass Klein-Lateiner auch den Drang hat, nicht immer vorgefertigte Lösungen zu nehmen, sondern gern auch einmal was selbst zu machen, auch wenn das garantiert nicht der Weg des geringsten Widerstandes ist ;)
  • Lateiner schrieb:

    LabView ist auf dem Mac eine Beleidigung, genauso wie Matlab.

    LabView kenne ich nicht, aber MATALB läuft doch super auf dem Mac. Benutzt halt immernoch X11, aber davon merkt man nicht viel. Grossartige Performance-Unterschiede zwischen der Mac und der Windows Version konnte ich bislang auch nicht beobachten. Als "Beleidigung" würde ich die Mac-Version darum ganz bestimmt nicht bezeichnen. Aber vielleicht ist es bei LabView ja wirklich so..
    C++