Verfasst am: 27.11.2011, 13:46
Titel: String nach bestimmter Anzahl an Zeichen aufteilen
Hallo!
Ich bin neu in diesem Forum, und arbeite auch noch nicht lange mit Matlab.
Mein Professor hat mich ziemlich überfallen, als ich auf einmal mit Matlab programmieren sollte. Inzwischen komme ich einigermaßen klar.
Zu meinem Problem:
Ich habe ein senkrechtes Cell-Array "Uhrzeit", in jeder Zelle steht eine Uhrzeit mit dem Format HH:MM:SS
Die Sekunden stehen jedoch immer auf 00, sind somit für mich unwichtig und stören nur in der Ausgabe. Ich möchte also nur HH:MM haben.
Ich suche nun schon seit ein paar Tagen nach einer Möglichkeit, wie ich so einen Ausdruck nach einer bestimmten Anzahl von Zeichen teilen kann, sodass ich mit dem 1. Teil weiterarbeiten kann. Meine Literatur zu Matlab befindet sich derzeit etliche Kilometer entfernt in meiner WG, und die Suche bei Google und hier im Forum hat mit auch nicht weitergeholfen.
Ob das eine effektive Methode ist, oder ob es auch einfacher geht, weiß ich nicht. Wie gesagt, ich bin noch ziemlich unerfahren was Matlab angeht und bin froh, dass die erwarteten Ergebnisse herauskommen.
Aber an o.g. Problem hänge ich derzeit fest. textscan kann ich hier nicht mit 'delimiter' anwenden, da er schon am 1. Doppelpunkt trennen würde. Aber ich habe in der Matlab-Dokumentation auch nichts gefunden, wonach ich mit textscan auch nach Anzahl der Zeichen trennen kann.
Hallo,
guck mal ob es eine Funktion gibt, die die Zeichen in ASCII (ich meine die Zahlen, die die Zeichen kodieren) umwandelt. Dann hast du ein Zahlenarray und kannst nach einer Zahl (der ":" ist z.B. 58 ) suchen. Ist nicht elegant, funktioniert aber.
Gruß
Kevin
_________________
Aber habe ich dann nicht immer noch das Problem, dass die 58 für den Doppelpunkt 2 Mal vorkommt? Somit wüsste ich ja immer noch nicht, wie ich denn sagen kann, dass Matlab erst bei dem 2. Doppelpunkt, bzw. bei der 2. 58 trennen soll.
Wenn es eine Möglichkeit gibt, dass Matlab nach bei einem bestimmten Zeichen trennt, aber das 1. Vorkommen dieses Zeichen ignoriert und erst beim 2. Vorkommen den String teilt (oder alternativ den String von hinten nach vorne liest?), dann bräuchte ich auch nicht in ASCII-Zahlen umzuwandeln.
Ach so...jetzt versteh ich dein Problem.
Ich würde einfach an jedem Doppelpunkt trennen und danach nur noch die Elemente im array ansprechen, die ich brauche, z.B.
string = "15:07:00 " --> array=[15,7,0] und dein Skript muss dann wissen, dass es z.B. nur array(1) und array(2) ansprechen darf.
_________________
Danke soad, das ist genau das was ich brauche!
Mit Datumsfunktionen hatte ich bisher noch gar nicht gearbeitet, aber es funktioniert so einwandfrei.
Kevin, dein Vorschlag hätte sicherlich auch geklappt. Wär aber weniger elegant gewesen
Einstellungen und Berechtigungen
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
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.