首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本文件与Matlab

文本文件与Matlab
EN

Stack Overflow用户
提问于 2015-11-17 17:33:14
回答 1查看 30关注 0票数 0

我在对*.txt文件进行某些更改时遇到问题。数据的格式如下:

代码语言:javascript
复制
11,2003,1,1,9,38,40.38,1
11,2003,1,1,9,47,2.5,1
11,2003,1,1,10,34,43.88,1
11,2003,1,1,10,38,14.5,1
11,2003,1,1,12,47,13.2,1

其中,列是站号、年、月、日、时、分、秒和降水量(1= 0.1毫米)

降水量=0的时间不包括在列表中。这导致在没有降雨的小时内将不会出现。对于这些情况,我想在新文件中为没有降雨的小时的第一分钟创建一个条目,以表明已经进行了测量。如下所示:

代码语言:javascript
复制
50810,200301010938,0.1 
50810,200301010947,0.1 
50810,200301011034,0.1 
50810,200301011038,0.1
50810,200301011100,0.0   <---- This is what I need to get in the New file
50810,200301011247,0.1

(新站号,日期/时间,降水量)

到目前为止,我想出了这个:

代码语言:javascript
复制
clear all

data = load('jan-31des_2003.txt'); %opens file with data
fid=fopen('50810_2003','w'); %opens empty file to write
[nrow, ncol] = size(data); %size of data
fprintf(fid,'%5s %12s %5s \r\n','Snr','Dato - Tid','RR_01') %Header

for row = 1:nrow 

y = data(row,2); %year
m = data(row,3); % month
d = data(row,4); % date
h = data(row,5); % hour
M = data(row,6); % minute
p = data(row,8); % precipitation
p = p*0.1


end

fclose(fid);
EN

回答 1

Stack Overflow用户

发布于 2015-11-17 18:18:54

您可以使用if命令来检查您正在查看的下一个小时是否比上一个小时提前了一个小时。如果是这种情况,您可以在此时创建一个新条目:

代码语言:javascript
复制
if data(row,5) > (data(row-1,5)+1)
  y = data(row,2); %year
  m = data(row,3); % month
  d = data(row,4); % date
  h = data(row,5)+1; % hour
  M = 00; % minute
  p = 0; % precipitation
end

在此部分之后,您将需要再次检查是否有另一个“跳过”小时,以此类推。您还应该将for循环替换为while循环,直到到达数据集中的最后一个条目。

试着实现这个想法,并将你的代码带给我们,以防它无法工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33753390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档