|
|
Zeitvektor und Datenmatrix auffuellen |
|
RatioTM |

Forum-Fortgeschrittener
|
 |
Beiträge: 51
|
 |
|
 |
Anmeldedatum: 24.04.18
|
 |
|
 |
Wohnort: Genf
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.07.2018, 20:21
Titel: Zeitvektor und Datenmatrix auffuellen
|
 |
|
 |
|
Hallo,
ich moechte eine function schreiben, die mir eine beliebige m x n- Matrix und einen Zeitvektor bei Unterbrechungen ergaenzt. Das Problem ist im Anhang gezeigt: ich habe verschiedene Datensaetze mit unterschiedlichem Hintergrund. Wenn ein Instrument beispielsweise gewartet wurde, sammelt es ueber diesen Zeitraum keine Daten und ich erhalte einen Sprung in der Datenerfassung.
Diese Spruenge zeigen sich als kurze Stufen in unterem Plot.
Nehmen wir an, das Instrument sammelt 50 verschiedene Daten zur gleichen Zeit; nun moechte ich dass immer dann, wenn ich eine Stufe in der Zeit habe, die Daten durch NAN-Werte aufgefuellt werden und zugleich die Zeit weiter laeuft, sodass ich einen konstanten Zeitvektor ohne unterbrechungen erhalte.
Mein Konzept sieht bisher wie folgt aus:
Das ganze ist schoen und gut, jedoch funktioniert es
i) nur fuer n x 1 matrizen (was sich mit einer schleife allerdings beheben lassen sollte)
ii) nur solange der Zeitvektor aus integers besteht...
fuer i) sieht meine erste Idee folgendermassen aus:
Wobei das noch nicht ausgereift ist. Ich habe jedoch das Gefuehl, mit meinem Ansatz in eine Sackgasse zu kommen und da irgendein Denkfehler drin ist, weshalb das so nicht moeglich ist.
Kennt ihr eine MATLAB Function/ eine Syntax, mit der ich hier weiterkomme (die ich womoeglich nicht kenne)?
Vielen Dank fuer eure Ratschlaege!
Beschreibung: |
|
 Download |
Dateiname: |
HTOF_averaging.png |
Dateigröße: |
34.12 KB |
Heruntergeladen: |
251 mal |
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.497
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.07.2018, 20:59
Titel:
|
 |
Hallo,
timetable
und vor allem
retime
könnte helfen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
RatioTM |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 51
|
 |
|
 |
Anmeldedatum: 24.04.18
|
 |
|
 |
Wohnort: Genf
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2018, 13:01
Titel:
|
 |
|
 |
|
Hallo,
Vielen Dank fuer den Tipp!
das geht auf jeden Fall in die Richtung; der Documentation zu Folge muss ich jedoch hierbei wie folgt vorgehen:
jetzt gibt es dabei ein Problem: Ich moechte, dass der Code auf verschiedene Instrumente anwendbar ist, wobei ich so gut wie nie eine "glatte Zahl" habe (also beispielsweise habe ich folgende Zeitstempel: 14.10. 23:58:43; 15.10. 00:03:42; 15.10. 00:08:41; .....)
Ich moechte also im Grunde, dass der Code die Zeitmittelung entweder erkennt, oder in der function vorgegeben bekommt (was hier durch x erfuellt waere).
retime scheint mir hier jedoch die Zeit anzunaehern statt sie fortzufuehren. Hinzukommend packe ich meine Zeitstempel stets in double Matrizen mit matlab zeitstempel; ich muesste also eigentlich nur das delta der matlabzeitstempel erkennen lassen und im Falle von unterbrechungen dieses fortfuehren..meiner Meinung nach wuerde mein erster Ansatz weiter oben dies erfuellen koennen, sofern ich diesen "auf Matlabzeit" beziehen kann und von den integers wegkomme. Was ist deine Meinung dazu?
|
|
|
DerElch |

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 18.07.18
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2017b
|
 |
|
|
 |
|
Verfasst am: 31.07.2018, 17:21
Titel:
|
 |
Da ich keine Daten derzeit habe folgendes:
Die Stellen finden wo der Zeitsprung ist (siehe
diff
)
Anhand von Messfrequenz und
linspace
einen Vektor bauen
Länge von Vektor nehmen und passende Anzahl an NaN Spalten generieren.
Neues Array bauen mit Länge Alt + Länge neu hinzugefügt
Fertig
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.497
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 31.07.2018, 21:24
Titel:
|
 |
Hallo,
mir ist die Problematik nicht klar. Ein nachvollziehbares Beispiel wäre sehr hilfreich. Dann wüsste man auch, was "in double Matrizen mit matlab zeitstempel" heißen soll.
Bei retime gibt es verschiedene Aufrufmöglichkeiten. Es wäre verwunderlich, wenn das, was du brauchst, nicht dabei ist.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
RatioTM |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 51
|
 |
|
 |
Anmeldedatum: 24.04.18
|
 |
|
 |
Wohnort: Genf
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.08.2018, 17:36
Titel:
|
 |
Hallo,
ich habe euch eine typische Zeitserie angehaengt. Wenn ihr diese plottet, werdet ihr sehen, dass es dort immer wieder kleine unterbrechungen gibt, die es auch im dazugehoerigen datensatz zur gleichen Zeit gibt. Dies passiert wegen beispielsweise Wartungen am Instrument und ist bei jedem Instrument anders in Laenge und Regelmaessigkeit.
Ziel muesste sein
i)diese Unterbrechungen per Programm zu erkennen und die Zeitserie hier zum einen weiterzufuehren
ii) den Zugehoerigen Datensatz zu diesen Zeitpunkten mit NaN Werten aufzufuellen.
Beschreibung: |
|
 Download |
Dateiname: |
time.mat |
Dateigröße: |
27.85 KB |
Heruntergeladen: |
250 mal |
|
|
|
RatioTM |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 51
|
 |
|
 |
Anmeldedatum: 24.04.18
|
 |
|
 |
Wohnort: Genf
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.08.2018, 19:17
Titel:
|
 |
DerElch hat Folgendes geschrieben: |
Da ich keine Daten derzeit habe folgendes:
Die Stellen finden wo der Zeitsprung ist (siehe
diff
)
Anhand von Messfrequenz und
linspace
einen Vektor bauen
Länge von Vektor nehmen und passende Anzahl an NaN Spalten generieren.
Neues Array bauen mit Länge Alt + Länge neu hinzugefügt
Fertig  |
Hallo,
grundsaetzlich ist dieser Ansatz nicht schlecht; er wuerde sich fuer die Zeit auch wie folgt verwirklichen lassen (fuer obigen Datensatz):
Jedoch muss ich die NaN Werte genau an jenen Orten einsetzen, an denen ich bei time die unterbrechungen habe, da ich sonst die Messwerte verzerren wuerde. Das scheint mir hier komplizierter, da ich einfach die NaN Werte demnach aufaddieren wuerde bei der Data Matrix...
|
|
|
|
|
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.
|
|