Время участка против угла; как конвертировать время в число
Я пытаюсь создать сюжет (угол падения против времени). Время устанавливается от часа восхода до часа восхода (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