Время участка против угла;как конвертировать время в число - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь создать график (угол падения в зависимости от времени).Время устанавливается от часа восхода до часа восхода (6:37:00 AM - 6:39:00 PM).Я должен найти угол падения для каждого минутного интервала от восхода до заката.Единственная проблема - у меня нет ни малейшего понятия, как преобразовать время в число.

Угол падения зависит от часового угла (Angle_hour).Это зависит от времени.Время до полудня имеет отрицательное значение, а время после полудня положительно.Например, в 6:37 часов будет равно -6,62.С другой стороны, 6:39 вечера будет равно 6,65.Я пытаюсь, чтобы цикл for вычислял различные значения в течение периода времени.

 for k = 1:6

    Hours = k;

    Angle_Hour(k) = 15 * Hours;
    Angle_Incidence(k) = acos((sin(Angle_Declination) * sin     (Angle_Latitude) * cos(Angle_Slope)) - (sin(Angle_Declination) * cos(Angle_Latitude) * sin(Angle_Slope) * cos(Angle_SurfaceAzimuth)) + (cos(Angle_Declination) * cos(Angle_Latitude) * cos(Angle_Slope) * cos(Angle_Hour(k))) + (cos(Angle_Declination) * sin(Angle_Latitude) * sin(Angle_Slope) * cos(Angle_SurfaceAzimuth) * cos(Angle_Hour(k))) + (cos(Angle_Declination) * sin(Angle_Slope) * sin(Angle_SurfaceAzimuth) * sin(Angle_Hour(k)))) ;

 end

1 Ответ

0 голосов
/ 07 февраля 2019

Если в вашей программе время дня является переменной типа datetime , то вы можете использовать datenum , чтобы превратить дату в число, или вы можете использоватьфункции: час, минута, секунда , чтобы извлечь часы, минуты и секунды, а затем вычислить угол, используя их.

Так, например, у вас может быть что-то вроде этого:

function angle = Angle_Hour(k)
   hours = hour(k) + minute(k)/60 + second(k)/3600
   angle = % some expression/function of time in hours
end
...