ich bin absoluter Anfänger in MatLab und habe folgendes Problem, zu dem ich auch keine Lösungen in Büchern oder im Internet gefunden habe.
Ich habe einen Datums-und Zeitvektor mit Start- und Endzeit entwickelt (mit datenum), der das Datum und jede Viertelstunde über das Jahr 2007 angeben soll (also 1.Zeile 01.01.2007 00:00, 2.Zeile 01.01.2007 00:15:00, etc.) (realisiert über A = Startzeit:1/96:Endzeit). Über datestr kann ich mir z.B. nur die Zeit angeben lassen (Zeit = datestr(A,15).
Nebenbei habe ich einen Vektor B aus Excel eingelesen. Beide Vektoren sind gleich lang.
Wenn nun der Vektor A (oder Vektor Zeit?) in einer Zeile 07:30:00 angibt, dann soll entsprechend in der gleichen Zeile des B Vektors der Wert mit 2 multipliziert werden.
Dies ist leider erst das erste Problem, die weiteren folgen dann bzw. sind eine weitere Detaillierung.
vielen Dank! War gerade ein paar Tage verreist, daher sitze ich nun erst wieder dran. Funktioniert leider nicht, da B anschliessend ein leerer Vektor ist ("Input array is empty"). Also im unteren Code ist B leer.
Super! Läuft auch bei mir, allerdings zeigt er mir dann den Vektor B in Excel nur mit 2 Zeilen, die er in die Zellen E2 und E3 schreibt, an. (Kurzer Hintergrund: B ist eine Zeitreihe über zwei Tage, dementsprechend kommt der String '07:30' auch zwei Mal vor). Allerdings möchte ich in Excel einmal den alten Vektor B in Spalte C und den veränderten in Spalte E, mit den entsprechenden Multiplikationen bei '07:30' angezeigt bekommen, also in der entsprechenden gleichen Zeile.
Grund ist, dass ich noch andere Zeitreihen verändern muss und später alle überlagern möchte, um dann anschliessend monetär zu bewerten. Die original Zeitreihen gehen über 1 Jahre (also rund 35.000 1/4-Werte).
hervorragend!! Ich hatte bereits diesen Versuch auch unternommen, da es aber nicht klappte, hatte sich wohl bei mir ein Fehler eingeschlichen. Nun funktionierts, stellt mich aber vor neue Probleme:
1) Statt z.B. nur den Wert in Vektor B bei 07:30 mit 2 zu multiplizieren, sollen alle Werte im Zeitraum von 07:30 bis 09:00 mit 2 multipliziert werden. Anstatt nun jede 1/4 h einzeln anzugeben (also 07:30, 07:45, 08:00, etc. - machbar aber umständlich): Gibt es hier eine elegantere Lösung?
2) Diese Multiplikation in diesem Beispiel mit 2 soll nur an Werktagen im Jahr 2007 erfolgen. Die Wochenenden und Feiertage sollen besonders berücksichtigt werden (also alle Zeitpunkte am Wochenende z.B. mit 0,5 multipliziert werden). Meine Recherchen und Suchen in Büchern und im Internet haben leider bisher nichts ergeben.
Danke für Deine Hilfe!
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.