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

Werte jährlich übereinander plotten

 

Sören95
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 12.01.21
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 11.05.2021, 17:45     Titel: Werte jährlich übereinander plotten
  Antworten mit Zitat      
Guten Abend,

ich habe folgendes Problem: Ich habe Mittelwerte über mehrere Jahre und möchte nun die Werte der Jahre miteinander vergleichen, indem ich die Werte jährlich in einen Plot lege.
Weil ich keine Funktion dafür gefunden habe, dachte ich mir, ich speichere die Werte in einer Matrix ab. Also für folgendes Beispiel über 22 Jahre dann 22 Spalte mit jeweils 365 Zeilen.

Code:


D = retime(Q,'daily','mean');  %Tagesmittelwerte bilden

for j= 1:22  %22 Jahre

for i= 1:365   %365 Tage pro Jahr
   
    A(i,j)= D.Abfluss(D.Time == datetime(1997+j,1,i,0,0,0));
end

end

 


Der Code funktioniert tatsächlich soweit, aber nur solange an jedem Datum auch ein Wert vorhanden ist und das ist eben nicht immer der Fall. Ansonsten kommt folgende Fehlermeldung:

Code:
Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 0-by-1.



Dadurch bricht dann das ganze ab. Hat jemand eine Idee, wie ich matlab sage, dass er bei einem Nichtvorhandenen Datum einfach einen Nan-Eintrag machen soll? Oder sonst vielleicht eine ganz andere Idee um Werte jährlich übereinander zu plotten?

Vielen Dank vorab!
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 11.05.2021, 20:57     Titel:
  Antworten mit Zitat      
Dan füge eine Abfrage an, ob ein Wert vorhanden ist, bevor du ihn versuchst, in die Matrix zu schreiben.
Wenn kein 'Wert da ist, schreibe stattdessen einen Alternativwert (NaN oder z.B. den letzten Wert der Reihe ) .
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören95
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 12.01.21
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 12.05.2021, 07:00     Titel:
  Antworten mit Zitat      
Guten Morgen, genau da fängt das Problem aber an. Wie frage ich, ob überhaupt irgendein Wert gefunden wird? Wenn nein, soll er dafür NaN eintragen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 12.05.2021, 19:05     Titel:
  Antworten mit Zitat      
Bitte schau dir das Matlab onramp und die Marlab-Hilfe an.
Abfrage auf "leer" geht sinnvoll mit isempty.

Code:

if ~isempty (D.Abfluss(D.Time == datetime(1997+j,1,i,0,0,0)))
   A(i,j)= D.Abfluss(D.Time == datetime(1997+j,1,i,0,0,0));
else
   A(i,j)= NaN;
end
 

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören95
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 12.01.21
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 14.05.2021, 10:10     Titel:
  Antworten mit Zitat      
Vielen Dank Martina! Das löst mein Problem ziemlich gut! In der Matlab Hilfe habe ich natürlich schon geguckt, aber dazu leider nichts gefunden.
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 - 2024 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.