WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zeitpunkte festhalten

 

regen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2013, 19:23     Titel: Zeitpunkte festhalten
  Antworten mit Zitat      
Hallo,

ich verwende für meine Berechnungen Niederschlagsprognosen. Diese Prognosen werden viermal am Tag erstellt, also mit sechs stunden Zeitabstand. Das heißt nun, dass ich für ein Zeitpunkt vier Werte habe. Meine Daten sind folgendermaßen aufgebaut ich habe eine cell Struktur.
im ersten Feld steht der Zeitpunkt der Vorhersage, im zweiten Feld wird der vorhergesagte Zeitpunkt angegeben und im dritten Feld der wert.

Das Problem ist folgendermaßen definiert: Ich möchte eine Interpolation durchführen, jedoch möchte ich die werte immer von einer Prognose machen, wie gesagt ich habe vier unterschiedliche Prognosen für einen Zeitpunkt. Die erste Position des Cell Felder ist ein Datensatz, die zweite Position macht den zweiten Datensatz aus, usw.

Wenn was unklar ist bitte melden.


Viele Grüße,


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.04.2013, 22:22     Titel:
  Antworten mit Zitat      
Hallo,

Interpolation mit interp1.
Sind die Informationen nach einem bestimmten Schema angeordnet?

Es wäre deutlich leichter, wenn du die Zeitangaben z.B. mit datenum in Zahlen umwandeln würdest. Die lassen sich nämlich besser vergleichen.

Willst du für jede Prognose eine Interpolation erstellen? Wenn ja, wie sollen diese Interpolationen abgespeichert werden, oder was soll damit gemacht werden?

Ein Beispieldatensatz wäre hilfreich.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2013, 08:56     Titel: Re: Zeitpunkte festhalten
  Antworten mit Zitat      
Hallo regen,

Das ist nun der dritte Beitrag zum gleichen Problem. Es wäre wohl sinnvoller, Du bleibst bei einem Thread und versuchst ein bestimmtes konkretes Problem zu lösen. Die Fragen sind immer noch recht allgemein und eine konkrete Antwort würde zu viel Raten erfordern.

Ob das physikalische Problem "Niederschlagsprognosen" oder irgendetwas anders sind, spielt dabei überhaupt keine Rolle: Für Matlab handelt es sich um Zahlen. Solche Details veriwrren deshlab nur die Leser, oder halten sie zumindest auf.

Zitat:
ich habe eine cell Struktur.
im ersten Feld steht der Zeitpunkt der Vorhersage, im zweiten Feld wird der vorhergesagte Zeitpunkt angegeben und im dritten Feld der wert.

Dies sind nun wieder zu wenige Details: Was genau ist eine "cell Struktur"? Ein [1 x N] CELL Vektor, der STRUCTs enthält? Oder ein STRUCT, der ein [N x 3] CELL enthält? Heißt "im dritten Feld" dann:
Code:
S(1).Feld
% Oder
S.Feld3
% Oder
S.Feld{3}

?

Statt über Prognosen und Regen zu schreiben, reicht es wahrscheinlich, wenn Du hier als Beispiel zufällige Werte angibst, etwa
Code:
S.Feld{1} = rand(100, 1), etc

Oder wie auch immer Deine Daten strukturiert sind. Danach muss erklärt werden, welche Funktion mit den Daten ausgeführt werden soll. Bei einer Intepolation sollte man noch überlegen, wie sich dies auf das Integral der Daten auswirkt, in Deinem Fall sollte die Gesamt-Regenmenge davon nicht beeinflusst werden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
regen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 14:12     Titel:
  Antworten mit Zitat      
Folgendermaßen sehen meine Daten aus.
Ich habe die Werte nun als <1650x1 double> Werte abgelegt für die Variablen.
Zitat:
im ersten Feld steht der Zeitpunkt der Vorhersage, im zweiten Feld wird der vorhergesagte Zeitpunkt angegeben und im dritten Feld der wert.

Code:

01.01.2013 00:00   02.01.2013 00:00   3
01.01.2013 00:00   02.01.2013 04:00   3,2
01.01.2013 00:00   02.01.2013 08:00   3,3
01.01.2013 00:00   02.01.2013 12:00   2,8
01.01.2013 00:00   02.01.2013 16:00   3,3
01.01.2013 00:00   02.01.2013 20:00   3,6
01.01.2013 06:00   02.01.2013 00:00   3
01.01.2013 06:00   02.01.2013 04:00   3,2
01.01.2013 06:00   02.01.2013 08:00   3,3
01.01.2013 06:00   02.01.2013 12:00   2,8
01.01.2013 06:00   02.01.2013 16:00   3,3
01.01.2013 06:00   02.01.2013 20:00   3,6
01.01.2013 12:00   02.01.2013 00:00   2,8
01.01.2013 12:00   02.01.2013 04:00   3
01.01.2013 12:00   02.01.2013 08:00   3,1
01.01.2013 12:00   02.01.2013 12:00   3
01.01.2013 12:00   02.01.2013 16:00   3,3
01.01.2013 12:00   02.01.2013 20:00   3
01.01.2013 18:00   02.01.2013 00:00   3,1
01.01.2013 18:00   02.01.2013 04:00   3,1
01.01.2013 18:00   02.01.2013 08:00   3,2
01.01.2013 18:00   02.01.2013 12:00   3
01.01.2013 18:00   02.01.2013 16:00   3
01.01.2013 18:00   02.01.2013 20:00   3
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.04.2013, 14:17     Titel:
  Antworten mit Zitat      
Hallo,

bitte alle Rückfragen beantworten. Bisher nicht beantwortet:
Zitat:
Willst du für jede Prognose eine Interpolation erstellen? Wenn ja, wie sollen diese Interpolationen abgespeichert werden, oder was soll damit gemacht werden?


Zitat:
Ich habe die Werte nun als <1650x1 double> Werte abgelegt für die Variablen.

Welche Werte? Für jedes Feld eine Variable?

Ist das, was du hier gepostet hast, ein Ausschnitt einer Excel-Tabelle oder was?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
regen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 14:36     Titel:
  Antworten mit Zitat      
Das mit Interpolation könnte ich selber machen, dazu habe ich schon Forumsbeiträge gesehen. Anstatt der Interpolation könntest du beispielsweise erstmal nur plotten lassen.

Japp habe die Daten seperat in variablen gespeichet(punkt, zeit und werte)

Ist das, was du hier gepostet hast, ein Ausschnitt einer Excel-Tabelle oder was?
Ich habe mit den Funktionen datenum und datestr umgewandelt und in excel geschrieben, wollte auch eigentlich grafiken dazu malen, falls es benötigt wird.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2013, 15:30     Titel:
  Antworten mit Zitat      
Hallo regen,

Bitte beschreibe nochmal ganz konkret, in welchem Format die Input-daten vorliegen? Ist das eine Matrix?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
regen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2013, 15:56     Titel:
  Antworten mit Zitat      
Habe drei Zeilenvektoren mit den namen punkt, zeit und wert

Die Zeitwerte liegen in folgendem Timeformat 735235,
die habe ich aber mitttels datestr(Time, 'dd.mm.yyyy HH:MM');
in das übliche Dateformat umgewandelt '01.01.2013 00:00'.

Und die Werte sind double zahlen.

<1620x1 double> zeit
<1620x1 double> punkt
<1620x1 double> werte
 
freddy123
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2013, 20:04     Titel:
  Antworten mit Zitat      
Jan und Harald seid ihr im urlaub??
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.04.2013, 09:43     Titel:
  Antworten mit Zitat      
Hallo,

davon abgesehen, dass deine Daten wohl Spaltenvektoren sind:
wobei benötigst du nun eigentlich Hilfe?

Eingangs hast du gesagt, dass du interpolieren willst, später hast du gesagt, dass du die Interpolation selbst hinbekommst. Worum geht's dann noch?

Bitte versuche von Anfang an, deine Frage so konkret und klar wie möglich zu formulieren. Wir haben jetzt hier 10 Beiträge, und zumindest mir ist immer noch nicht klar, was du nun eigentlich erreichen willst und wo das Problem dabei liegt.
Und verwende bitte immer den gleichen Nutzernamen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.04.2013, 10:06     Titel:
  Antworten mit Zitat      
Hallo freddy123,

Wieso fragst Du, ob wir im Urlaub sind und hälst Du "ja" als Antwort für möglich?
Wieso fragst Du in regen's Thread nach? Arbeitet ihr zusammen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy123
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2013, 03:49     Titel:
  Antworten mit Zitat      
Japp es handelt sich hier um Spalten-vektoren. Wenn es dir nichts ausmacht, würde ich gerne die Sache mit der Interpolation auch als Aufgabe definieren.

Folgendes Problem:
Wenn du dir die ersten Zeilen der Datensätze anschaut wirst du sehen, dass die Zeitabstände in der variable zeit immer regelmäßig den Abstand 4 haben. Wobei noch darauf hingewiesen werden muss, dass die in der spalte punkt denselben Zeitpunkt haben. Ziel ist es die Zusammengehörigkeit der Werte immer beizubehalten, d.h. die ersten sechs werte gehören zusammen (dabei müsste immer überprüft werden, ob diese werte denselben Spalteneintrag punkt haben), so könnte beispielsweise mit Hilfe der Interpolation die Abstände auf 2 reduzieren werden.
So würde automatisch meine Datenmenge verdoppeln. Beispielsweise würde
01.01.2013 00:00 zwölf zeitpunkte mit interpolierten werten haben.

Wichtig ist hierbei noch folgendes: die neuen Datensätze in der Reihenfolge bleiben.

Zitat:
punkt zeit wert
01.01.2013 00:00 02.01.2013 00:00 3
01.01.2013 00:00 02.01.2013 04:00 3,2
01.01.2013 00:00 02.01.2013 08:00 3,3
01.01.2013 00:00 02.01.2013 12:00 2,8
01.01.2013 00:00 02.01.2013 16:00 3,3
01.01.2013 00:00 02.01.2013 20:00 3,6
01.01.2013 06:00 02.01.2013 00:00 3
01.01.2013 06:00 02.01.2013 04:00 3,2
01.01.2013 06:00 02.01.2013 08:00 3,3
01.01.2013 06:00 02.01.2013 12:00 2,8
01.01.2013 06:00 02.01.2013 16:00 3,3
01.01.2013 06:00 02.01.2013 20:00 3,6
01.01.2013 12:00 02.01.2013 00:00 2,8
01.01.2013 12:00 02.01.2013 04:00 3
01.01.2013 12:00 02.01.2013 08:00 3,1
01.01.2013 12:00 02.01.2013 12:00 3
01.01.2013 12:00 02.01.2013 16:00 3,3
01.01.2013 12:00 02.01.2013 20:00 3
01.01.2013 18:00 02.01.2013 00:00 3,1
01.01.2013 18:00 02.01.2013 04:00 3,1
01.01.2013 18:00 02.01.2013 08:00 3,2
01.01.2013 18:00 02.01.2013 12:00 3
01.01.2013 18:00 02.01.2013 16:00 3
01.01.2013 18:00 02.01.2013 20:00 3


Interpolation habe ich im FOrum gefunden, das würde ich gerne einsetzen:

Code:
data = [3 5 6 7 6 NaN NaN 2 1 0 -2 NaN NaN NaN 9 10];
x = 1:numel(data);
good = ~isnan(data);
data(~good) = interp1(x(good), data(good), x(~good));


Die erste Herausforderung ist, das erzeugen von den neuen zeiten (spalte zeit) zu den punkten (spalte punkt). Sobald ich das geschafft habe könnte ich als wert NaN eintragen und die Interpolation anwenden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2013, 09:53     Titel:
  Antworten mit Zitat      
Hallo,

wenn die Daten als Double-Vektoren zur Verfügung stehen, dann poste sie doch im Beispiel bitte auch als solche. Und verwende bitte Punkt als Dezimaltrennzeichen. Ansonsten muss man die Daten ja erst umwandeln, damit man damit ein Beispiel machen kann.
Am einfachsten wäre es, wenn du ein .mat-File mit den drei Variablen hochlädst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy123
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.04.2013, 23:17     Titel:
  Antworten mit Zitat      
dateieendung ändern, danke

wertezeitpunkt.h
 Beschreibung:

Download
 Dateiname:  wertezeitpunkt.h
 Dateigröße:  335 Bytes
 Heruntergeladen:  250 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.04.2013, 12:59     Titel:
  Antworten mit Zitat      
Hallo,

in den Vektoren zeit und punkt sind alle Elemente gleich. Das ist wohl nicht so gedacht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.