Gå til innhold

Dobbel for loop | Octave | Tregt


Anbefalte innlegg

Holder på med å lage et script for å kalkulere solflux over en flate. Har ikke fullført scriptet ettersom jeg har et problem med at formelen for solhøyde hs (se scriptet) baserer seg på at man skal beregne solhøyden per time for hver dag. Jeg ønsker i grunn 365x24 = 8760 beregninger. Alle enkeltverdiene skal brukes senere når jeg kommer meg videre i scriptet.

Mitt problem er at jeg prøver å lage hs(d,h) = [354x24] vektor ved bruk av dobbel for loop, så tar dette ekstremt lang tid. Har prøvd meg på dette i matlab tidligere som beregner dette relativt kjapt,  men ettersom jeg ikke lengre har lisens bruker jeg nå Octave. Er det en annen måte å beregne hs som en [1x8760] vektor uten å måtte bruke en dobbel for loop?

 

clear;
clc;

%this is the lattitude of Oslo in radian
phi = 59.9139*(pi/180);


d = 1:365; 

ESTo(d) = 1373*(1+0.03344*cos((2*pi/365.25)*(d-2.75)));

%declenation angle 
delta(d) = asin(-sin((pi/180)*23.45)*cos((2*pi/365.25)*(d+10)));

% This is the time angle
h = 1:24;
omega(h) = pi-h*15*(pi/180); 
    
    
%this is the solar hight in radian
for d=1:365;
  for h=1:24;
  
hs(d,h) = max(0, pi/2 - acos(cos(phi)*cos(delta(d))*cos(omega(h))+sin(phi)*sin(delta(d))))

end
end

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...