Matlab:如何正确读取.txt文件中的月份

时间:2017-05-09 06:34:12

标签: matlab textscan

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

使用的代码是:

  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')

提前感谢您提供任何帮助,并且抱歉问一些看似愚蠢的事情。

1 个答案:

答案 0 :(得分:0)

保留最后一行,并在before(:each) do @admin = FactoryGirl.create(:admin) end 命令上方添加以下行:

@admin

这会将MonthNum转换为plot将理解的正确日期。