首页 > 解决方案 > 绘制时间与角度;如何将时间转换为数字

问题描述

我正在尝试创建一个图(入射角与时间)。时间设置在日出时间到日出时间(上午 6:37:00 - 下午 6:39:00)之间。我必须找到从日出到日落的每分钟间隔的入射角。唯一的问题是我不知道如何将时间转换为数字。

入射角取决于小时角(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

标签: excelmatlabtimesolar

解决方案


如果在您的程序中,一天中的时间是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

推荐阅读