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

if schleife -> tag des jahres

 

Pow Lee
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 23.10.08
Wohnort: Aldrans
Version: R2009b
     Beitrag Verfasst am: 10.12.2008, 11:36     Titel: if schleife -> tag des jahres
  Antworten mit Zitat      
Hallo zusammen kann mir vielleicht jemand bei diesem problem helfen!
Also ich will eine if schleife schreiben um mir den tag des jahres ausgeben zu lassen meine serielles datum geht über zwei jahre, darum wollte ich das serielle datum mit zwei verschiedenen referenzdatums subtrahieren.
Code:

% day of the year
if (date1_ser<=731946)
    day=date1_ser-datenum('20030101','yyyymmdd')+1;       % calcuate the day of the year for 2003 (731946 = 31.12.2003)
else
    day=date1_ser-datenum('20040101','yyyymmdd')+1;       % calcuate the day of the year for 2004
end
 


das serielle datum 'date1_ser' geht von 731825 bis 732068,
bei mir wird aber immer nur der befehl nach dem 'else' ausgeführt und somit bekomme ich für das erste jahr negative werte.
vielen dank und LG
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 10.12.2008, 11:55     Titel:
  Antworten mit Zitat      
ich habs gerade mal laufen lassen mit dem 19.11.2003

Code:

date1_ser=datenum('19112003','ddmmyyyy');
 



und da kommt bei mir mit 323 etwas positives raus.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
apn
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 04.12.08
Wohnort: Wolfsburg
Version: ---
     Beitrag Verfasst am: 10.12.2008, 11:57     Titel:
  Antworten mit Zitat      
Code:
date1_ser=731825;
if (date1_ser<=731946)
    day=date1_ser-datenum('20030101','yyyymmdd')+1; % calcuate the day of the year for 2003 (731946 = 31.12.2003)
    disp('j');
else
    day=date1_ser-datenum('20040101','yyyymmdd')+1;       % calcuate the day of the year for 2004
    disp('n');
end
day


Ergebnis: 244

lg,apn
Private Nachricht senden Benutzer-Profile anzeigen
 
Pow Lee
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 23.10.08
Wohnort: Aldrans
Version: R2009b
     Beitrag Verfasst am: 10.12.2008, 12:40     Titel:
  Antworten mit Zitat      
mit den einzelwerten funktionierts bei mir auch, aber leider nicht mit der datei 'date1_ser', woran kann das liegen? Question

date1_ser.xls
 Beschreibung:

Download
 Dateiname:  date1_ser.xls
 Dateigröße:  26 KB
 Heruntergeladen:  623 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 10.12.2008, 12:57     Titel:
  Antworten mit Zitat      
naja, wenn du einen vektor eingibts als if bedingung, dann muss jedes element "true" liefern, damit die if-bedingung ausgeführt wird. sollte nur ein einziges element "false" liefern, wird die else-bedingung für den gesamten vektor ausgeführt.

edit:
Die Bedingung kannst du auch direkt an die Indizierung einbinden:
Code:

A=date1_ser; % Vektor wird in A gespeichert
A(A<=731946)=A(A<=731946)-datenum('20030101','yyyymmdd')+1; % alle Elemente für 2003 werdenumgerechnet
A(A>731946)=A(A>731946)-datenum('20040101','yyyymmdd')+1; % alle Elemente für 2004 werden umgerechnet

disp(A) % A entspricht nun einem "day"

 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Pow Lee
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 23.10.08
Wohnort: Aldrans
Version: R2009b
     Beitrag Verfasst am: 10.12.2008, 14:36     Titel:
  Antworten mit Zitat      
super und vielen dank Very Happy
MFG Pow Lee
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.