Время участка против угла; как конвертировать время в число

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

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

 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 ответ

Если в вашей программе время в дне является переменной типа 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
Другие вопросы по тегам