Matlab:如何从 .t​​xt 文件中正确读取月份

Matlab: how to read correctly the months from a .txt file

我尝试读取 Matlab 中的 .txt 文件,其中包含有关太阳辐射和温度的每月信息。月份以文本形式表示,即一月、二月等。然后根据这些信息,需要制作一些图表来显示每月的信息,例如,每月的太阳辐射在 x 轴上有月份。除此之外需要在同一个图形上绘制两个图形,因为我有 Matlab 2015b 需要使用 plotyy。 问题:我认为从文件中读取的月份是正确的,但是当我绘制时将所有月份都作为一月,所以我无法正确绘制两个图表,因为时间不同。

使用的代码是:

  fidata = fopen('Asmara-mon2.txt', 'r' );
   formatSpeci = '%s';
    N1 = 9;
%     h1=('Month' 'Temp'  'Tamin' 'Tadmin' 'Tadmax' 'Tamax' 'RH');
   h3 = textscan(fidata,formatSpeci,N1,'Delimiter','|');
    asmara_precipitation= textscan(fidata,'%{MM}D %f %f %f %f %f %f %f %f');
%     formatIn = 'mm';
asmara_precipitation{1}=datenum(asmara_precipitation{1});
asmara_precipitation=cell2mat(asmara_precipitation); %% Month|  H_Gh|   SDm |SDd|SDastr |RR |RD |FF |DD
[MonthNum, MonthString] = month(asmara_precipitation(:,1));

p=find(average_day_radiation(:,1)<10);
q=find(diff(p)==1);
idx=[p average_day_radiation(p) average_day_radiation(p,2) average_day_radiation(p,4)];
consecutive_idx=[p(q) idx(q,2) idx(q,3) idx(q,4)];

% Graphic of bad radiation days

figure (44)

hold on

 plotyy(MonthNum,asmara_precipitation(:,7),consecutive_idx(:,1),consecutive_idx(:,2)) 
datetick('x','mmm')

提前感谢您的帮助,很抱歉提出一些看似愚蠢的问题。

只保留最后一行,并在plot命令上方添加以下行:

% The acquisition exact date: 2017-<MonthNum>-01 12:00:00
MonthNum=datenum(2017,MonthNum,1,12,0,0); 

这会将 MonthNum 转换为正确的日期,datetick 将理解其中的日期。