|
|
Summe in Matrix mit Bedingung |
|
DH |

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 22.04.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2016, 15:00
Titel: Summe in Matrix mit Bedingung
|
 |
|
 |
|
Hallo! Ich habe folgendes Problem: gegeben ist eine größere Matrix mit 12 Spalten. Die Werte entsprechen 5-Minuten- Niederschlagsmessung für eine Stunde. (5min*12=60 min). Ich soll nun Summen aller Werte bilden, die ungleich 0 sind. Die Bedingung dabei ist, dass zwischen den Summen mind. 3 Stunden liegen. In einem Vektor sind das Datum und Uhrzeit gespeichert und die Niederschlagswerte in einer Matrix. (siehe Beispiel unten) Kann mir jemand weiterhelfen?
Bin für jede Hilfe dankbar!
1 0 1 0 26 32 41 41 47 50 44 36
0 0 0 0 0 1 0 0 0 0 10 10
0 0 1 4 7 8 7 7 4 1 0 0
0 0 7 5 2 1 0 0 0 0 13 14
5 6 5 4 0 0 0 0 2 1 2 0
0 0 0 0 0 0 0 0 0 0 4 1
0 0 0 0 0 0 1 0 2 3 5 3
0 0 0 0 0 0 0 2 0 0 0 0
0 0 6 5 2 5 1 2 0 0 6 6
0 0 0 0 0 0 2 1 0 0 0 0
0 0 0 0 0 0 35 39 49 50 49 129
50 194 708 832 150 103 49 49 40 25 17 36
49 50 214 328 311 215 104 104 153 139 127 105
49 50 49 50 49 50 49 40 35 29 18 24
23 13 1 1 4 16 46 50 49 50 49 50
.
.
.
Example for Date Vector:
'20-Jan-1965 14:00:00'
'20-Jan-1965 16:00:00'
'20-Jan-1965 17:00:00'
'20-Jan-1965 18:00:00'
'20-Jan-1965 20:00:00'
'20-Jan-1965 21:00:00'
'20-Jan-1965 23:00:00'
'21-Jan-1965 00:00:00'
'21-Jan-1965 01:00:00'
'21-Jan-1965 02:00:00'
'21-Jan-1965 04:00:00'
'21-Jan-1965 05:00:00'
'21-Jan-1965 06:00:00'
'21-Jan-1965 07:00:00'
'21-Jan-1965 08:00:00'
.
.
.
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.05.2016, 16:35
Titel: Re: Summe in Matrix mit Bedingung
|
 |
Hallo DH,
Die Summe aller Werte, die ungleich 0 sind, ist die Summe aller Werte. Diese Bedingung kann man also ignorieren.
Was bedeutet jetzt aber "zwischen den Summen sollen 3 Stunden liegen" genau?
Gruß, Jan
|
|
|
DH |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 22.04.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2016, 17:10
Titel:
|
 |
Hallo Jan,
Die werte in den Reihen sind 5-minuten-messungen für die stunden die im Vektor mit Datum und Uhrzeit angegeben sind. Als beispiel: die erste zeile der matrix sind messungen für 20.01.1965 von 14:00 bis 15:00 uhr. Da schon die zweite Reihe nicht mit 15:00 beginnt, merkt man dass es quasi lücken in den messungen gibt. Da die matrix viel größer ist gibt es auch zeitunterschiede von mehr als 3 stunden zwischen den reihen. Ich brauche die Summen der werte, zwischen den weniger als 3 stunden sind. Also sobald die zeitdifferenz grösser als 3 Stunden ist, soll eine neue summe gestartet werden.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.05.2016, 21:48
Titel:
|
 |
Hallo DH,
Du suchst also nach Abschnitten, deren Werte 0 sind und die länger als 36 Elemente sind, richtig?
Liegen Messungen zu allen Zeiten vor? Kann man die Messwerte dann in einen Vektor umformen, oder fehlen zu manchen Stunden die Daten?
Falls die Zeit keine Lücken hat:
Siehe dazu: http://www.mathworks.com/matlabcent.....eexchange/41813-runlength
Nun hast Du mit Index(Match) die Startwerte der Blöcke mit Nullen, Index(Match+1) sind die Endpunkte. Vorsicht an den Rändern, das muss man noch abfangen.
Nun kannst Du die Summe mit einer Schleife berechnen.
Gruß, Jan
|
|
|
DH |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 22.04.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.05.2016, 22:22
Titel:
|
 |
Hallo Jan,
also so habe ich es auch probiert, aber das Problem ist genau das, dass es nicht Werte für alle Stunden gibt. Das ist sichtbar in dem Vektor mit Datum und Uhrzeit:
'20-Jan-1965 14:00:00'
'20-Jan-1965 16:00:00'
'20-Jan-1965 17:00:00'
'20-Jan-1965 18:00:00'
'20-Jan-1965 20:00:00'
Es ist sichtbar, dass zB die Werte für 15:00 Uhr und 19:00 Uhr fehlen. Wie gesagt, die Matrix ist viel größer und es gibt auch Lücken mit Unterschied von 130 Stunden oder so.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 04.05.2016, 11:17
Titel:
|
 |
Hallo DH,
Und wie soll mit einer Lücke von 130 Stunden umgegangen werden, wenn man nach 3 Stunden ohne Niederschlag sucht?
Gruß, Jan
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|