Filter löschen
Filter löschen

How do I make a loop that goes through day by day?

1 Ansicht (letzte 30 Tage)
Robert Hitchings
Robert Hitchings am 23 Jun. 2015
Bearbeitet: Robert Hitchings am 23 Jun. 2015
I for that day am doing research and need to create a loop that goes through day by day and also includes the appropriate sunrise and sunset times starting at line "day_2=...". my data looks like; "date/time | data | data | data " where date/time goes in half hour increments and: "date | time_sunrise | time_sunset" where date goes by day.
%Hudson River Water Quality 1995-2000
data=xlsread('Hudson_test1.xlsx');
tm=data(:,1)+datenum(1904,1,1);
[yr,mo,day,hr,min]=datevec(tm);
DO_p=data(:,5);
DO=data(:,6);
z=data(:,7);
dif_DO=DO(2:end)-DO(1:end-1);
air_sea=(1-((DO_p(1:end-1)+DO_p(2:end))/200))*0.5*0.5;
do_flux=(dif_DO.*z(2:end))-air_sea;
sun=xlsread('rise_set_test.xls');
tm_sun=sun(:,1)+datenum(1904,1,1);
[yr_s,mo_s,day_s]=datevec(tm_sun);
rise=(sun(:,2));
set=sun(:,3);
%put sunrise and sunset into proper matlab date format
srh=floor(rise/100);
srm=rise-100*srh;
sr=(srh+srm/60)/24;
sr_tm=sr+tm_sun; %puts in date format
ssh=floor(set/100);
ssm=set-100*ssh;
ss=(ssh+ssm/60)/24 ;
ss_tm=ss+tm_sun;
day_2 = tm(2:96);
j_2 = day_2>=sr_tm(2,1) & day_2<=ss_tm(2,1);
m_2 = day_2<=sr_tm(2,1) & day_2>=tm(49,1) |day_2>=ss_tm(2,1);
do_dy_2 = sum(do_flux(j_2));
do_nt_2 = sum(do_flux(m_2));
resp_rt_2 = (do_nt_2.*(-1))/(nnz(m_2)/2);
ttl_resp_2 = resp_rt_2.*24;
day_resp_2 = resp_rt_2.*(nnz(j_2)/2);
gp_2 = day_resp_2 + do_dy_2;
NEM_2 = gp_2-ttl_resp_2;

Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by