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

Messdaten-Auswertung

 

rocknrolli
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 19.04.2010, 21:51     Titel: Messdaten-Auswertung
  Antworten mit Zitat      
Hallo liebes Forum,

ich hab da ein Problem...

Ich habe eine ziemlich lange Liste mit Messdaten (1. Spalte: Stunde in Dezimaldarstellung, 2. Spalte: Wert).
Zur Info: Dabei geht es um die Sonneneinstrahlung im Dezember und Januar. Die Aufzeichnung geht also über zwei Monate. Die Werte wurden je nach Änderung aufgezeichnet, es gibt also keine Abtastrate.

Ich will nun aus der kompletten Liste einen Referenz-Wintertag bilden und zwar mit Viertelstundenschritten. Also t = 0 : 0.25 : 23.75

Ich habe die Messdaten in Matlab eingelesen und als Matrix gespeichert (1. Spalte: Stunde in Dezimaldarstellung, 2. Spalte: Wert).

Dann habe ich folgendes probiert:

Code:

EDU>> Wertinterp = interp1(E(:,1),E(:,2),t)
??? Error using ==> interp1 at 261
The values of X should be distinct.
 


Dann habe ich die Spalten der Matrix als Vektoren Stunde und Wert gespeichert und interp1 nochmals ausgeführt, mit dem selben Ergebnis:
Code:

EDU>> Wertinterp = interp1(Stunde,Wert,t)
??? Error using ==> interp1 at 261
The values of X should be distinct.
 


Hat jemand eine Ahnung, wie ich das Problem lösen kann?

Vielen Dank schonmal!

Viele Grüße,
rocknrolli
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen


rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 20.04.2010, 11:41     Titel:
  Antworten mit Zitat      
hat denn keiner einen Tipp? Ich sollte hier dringend weiterkommen...
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
Caidence
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2010, 11:48     Titel:
  Antworten mit Zitat      
Vielleicht kapiere ich das nicht richtig, aber wenn du nur t als 'Viertelstunden'-Wert hast, aber keine regelmäßigen Werte in der ersten Spalte, wie soll er sich dann orientieren?
Wenn die Abtastrate bei 0.25 Stunden liegen würde, dann ginge das ja ganz einfach.
Aber mir fällt spontan nicht ein, wie man aus 0.33, 4.02, 15.57 Uhr usw. einen Viertelstunden-Abstand-Tag zaubern will. Aber,wie gesagt, vielleicht steh ich wirklich auf dem Schlauch...
Private Nachricht senden Benutzer-Profile anzeigen
 
rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 20.04.2010, 12:26     Titel:
  Antworten mit Zitat      
Hallo Caidence,

meine Messdaten sehen folgendermaßen aus:

    0.36;5.6
    0.40;5.3
    0.94;5.6
    1.03;5.3
    1.13;5.6

... gut, das war nachts, da geht nicht viel, weil sich die Werte nicht ändern...

    10.32;643.0
    10.32;647.8
    10.32;652.6
    10.32;657.4
    10.32;662.1
    10.32;666.9

... mitten im Tag dafür umso mehr!

So wie ich die Refernz zu interp1 verstehe, brauche ich den Fall 1:

yi = interp1(x,Y,xi)

Dabei müsste sein:

x = Zeit (1. Spalte meiner Messtabelle)
Y = Wert (2. Spalte meiner Messtabelle)
xi = meine neue Zeit

oder verstehe ich irgendwas falsch?
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2010, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist, dass Du mehrmals die gleich Zeit hast: 10.32, 10.32. Das sagt auch die Meldung: X should be distinct.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 20.04.2010, 13:22     Titel:
  Antworten mit Zitat      
Hallo LittleX,

vielen Dank für den Tipp!

Ich hab jetzt meinen Stunden ein paar mehr Kommastellen gegönnt. Das bringt aber leider die selbe Fehlermeldung. Das eingestellte Format ist short.
Mit format long funktioniert der Datenimport mit dlmread nicht. Da bleiben meine Stunden und Werte unter 0!
Warum weiß ich nicht...
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2010, 20:01     Titel:
  Antworten mit Zitat      
Der Befehl format ändert nur die Genauigkeit der Anzeige und hat nichts mit der Genauigkeit der gespeicherten Daten zu tun.
Kannst Du mal einen Auschnitt aus der Datei posten und Deinen Code?
Am besten einen Ausschnitt, mit dem auch der Fehler auftritt Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 20.04.2010, 21:37     Titel:
  Antworten mit Zitat      
Hallo LittleX,

ich hab meine Uhrzeitangabe (hh:mm:ss) in Excel in Stunden umgerechnet.
Ich hab die Zahlen mit 15 Kommastellen dargestellt (das passt für long), damit die Wahrscheinlichkeit von gleichen Zahlen kleiner ist.

Das ist mal das Ende der Liste:

    22.739166666666700;5.2
    22.827777777777800;4.9
    23.019444444444400;5.2
    23.098888888888900;4.9
    23.380277777777800;4.6
    23.422222222222200;4.3
    23.453333333333300;4.6
    23.980555555555600;4.3
    0.011944444444444;3.9

In Matlab habe folgendes gemacht:
Code:

format long
E = dlmread('Einstrahlung_Winter.csv', ';')
 

Die letzten Zeilen der eingelesenen Liste sehen so aus:

    0.227391666666667 0.052000000000000
    0.228277777777778 0.049000000000000
    0.230194444444444 0.052000000000000
    0.230988888888889 0.049000000000000
    0.233802777777778 0.046000000000000
    0.234222222222222 0.043000000000000
    0.234533333333333 0.046000000000000
    0.239805555555556 0.043000000000000
    0.000119444444444 0.039000000000000

Die Werte werden um 2 Kommastellen nach rechts geschoben.
Wenn ich "format short" eintippe und mir E nochmal ausgeben lasse, habe ich das:


    22.7392 5.2000
    22.8278 4.9000
    23.0194 5.2000
    23.0989 4.9000
    23.3803 4.6000
    23.4222 4.3000
    23.4533 4.6000
    23.9806 4.3000
    0.0119 3.9000

Die Werte wurden also richtig eingelsen. Nur warum sie bei long falsch angezeigt werden, ist mir rätselhaft.
Wenn ich interp1 darauf anwenden will, passiert folgendes:
Code:

EDU>> t = 0:0.25:23.75;
EDU>> interp1(E(:,1), E(:,2), t)
??? Error using ==> interp1 at 261
The values of X should be distinct.
 

Das bei über 100000 Messwerten mal ne gleiche Zahl auftritt, kann ja sein...
Aber warum klappt das Einlesen mit format long nicht?

Viele Grüße,
rocknrolli
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 20.04.2010, 21:51     Titel:
  Antworten mit Zitat      
hab grad mal nur einen Tag eingelesen. Das funktioniert. Da kann ja auch kein Stundenwert doppelt vorkommen Wink
scheint so, als müsste ich das Einlesen aufsplitten...
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 21.04.2010, 20:35     Titel:
  Antworten mit Zitat      
Hallo ihr,

gibt es vielleicht eine andere Funktion in Matlab mit der ich die Messwerte interpolieren könnte? Der Funktion müsste es egal sein, wenn Zeitwerte doppelt sind.
Wenn ich es mit interp1 mache, muss ich ziemlich viel stückeln und das wird sehr langwierig Sad

Viele Grüße,
rocknrolli
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
rocknrolli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.10
Wohnort: ---
Version: 7.4.0 (R2007a) für Mac
     Beitrag Verfasst am: 24.04.2010, 17:29     Titel:
  Antworten mit Zitat      
Hallo,

hat mir denn keiner dafür einen Tipp?

Viele Grüße,
rocknrolli
_________________

7.4.0 (R2007a) für Mac
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.