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.
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?
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:
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
regen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.04.2013, 14:12
Titel:
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.
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
regen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.04.2013, 14:36
Titel:
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.
Bitte beschreibe nochmal ganz konkret, in welchem Format die Input-daten vorliegen? Ist das eine Matrix?
Gruß, Jan
regen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.04.2013, 15:56
Titel:
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
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.
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.
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.
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.
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.