声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4485|回复: 10

[编程技巧] 如何生成递增的时间序列

[复制链接]
发表于 2008-5-1 09:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想做一个时间序列,例如第一个数为12:00(12点整),第二个数为12:01,第三个数为12:02,第四个数为12:03……
做一组数组,不知道matlab怎么实现,请指教

[ 本帖最后由 eight 于 2008-5-1 23:45 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-5-1 12:03 | 显示全部楼层
原帖由 suannai 于 2008-5-1 09:17 发表
我想做一个时间序列,例如第一个数为12:00(12点整),第二个数为12:01,第三个数为12:02,第四个数为12:03……
做一组数组,不知道matlab怎么实现,请指教


“:”是字符,不是数字,应该把12:00当作字符串来处理吧
发表于 2008-5-1 23:46 | 显示全部楼层
版面搜索一下,或者在 matlab 的帮助搜索 time,然后自行尝试完成
发表于 2008-5-2 12:33 | 显示全部楼层

按照eight的提示,用以下方法完成

time=[1200:1:2400];
str = time2str(time,'24','hm')

评分

1

查看全部评分

发表于 2008-5-2 13:55 | 显示全部楼层
原帖由 lilongduzhi 于 2008-5-2 12:33 发表
time=[1200:1:2400];
str = time2str(time,'24','hm')


我用的是Matlab R2008a这个版本,试了一下你给的代码,会报错:
??? Error using ==> obsoleteHMS at 7
Function TIME2STR is obsolete.
See DATESTR for an alternative.

Error in ==> time2str at 37
obsoleteHMS(mfilename,'See DATESTR for an alternative.')


我自己编了一段代码如下:

代码:
clc
clear
A=12:13;
B=0:60;
C='';
for i=1:length(A)
for j=1:length(B)
C=[C,datestr(datenum([0000 00 00 A(i) B(j) 00]), 15)];
end
end
C

不知大家有没有更好的方法?

评分

1

查看全部评分

 楼主| 发表于 2008-5-3 08:44 | 显示全部楼层
原帖由 ch_j1985 于 2008-5-2 13:55 发表


我用的是Matlab R2008a这个版本,试了一下你给的代码,会报错:
??? Error using ==> obsoleteHMS at 7
Function TIME2STR is obsolete.
See DATESTR for an alternative.
Error in ==> time2str at 37
obs ...


谢谢大家的帮助
ch_j1985 你的代码为试了一下,有2个问题
1、你生成的数组其实只有一个数,也就是说输出的时候所有的数据都在一个单元里面
2、我发现在整点的时候会出现2个数字,例如13:00 13:00 13:01
请高手解决

[ 本帖最后由 eight 于 2008-5-4 18:38 编辑 ]
 楼主| 发表于 2008-5-3 08:48 | 显示全部楼层
原帖由 lilongduzhi 于 2008-5-2 12:33 发表
time=[1200:1:2400];
str = time2str(time,'24','hm')


lilongduzhi 的代码我试了一下,没有报错
但结果不对,只有小时在变化,分钟没有变化,也就是说00:00直接到00:01了
请再关注一下

[ 本帖最后由 eight 于 2008-5-4 18:40 编辑 ]
发表于 2008-5-3 08:59 | 显示全部楼层
原帖由 suannai 于 2008-5-3 08:44 发表


谢谢大家的帮助
ch_j1985 你的代码为试了一下,有2个问题
1、你生产的数组其实只有一个数,也就是说输出的时候所以的数据都在一个单元里面
2、我发现在整点的时候会出现2个数字,例如13:00 13:00 13:01
请 ...


这段代码怎么样?

clc
clear
A=12:13;
B=0:59;
for i=1:length(A)
for j=1:length(B)
datestr(datenum([0000 00 00 A(i) B(j) 00]), 15)
end
end

评分

1

查看全部评分

 楼主| 发表于 2008-5-4 21:53 | 显示全部楼层
原帖由 ch_j1985 于 2008-5-3 08:59 发表


这段代码怎么样?



非常感谢你!,但是你的代码还是生成不了时间序列,等高手出现吧
发表于 2008-5-4 22:12 | 显示全部楼层
原帖由 suannai 于 2008-5-4 21:53 发表



非常感谢你!,但是你的代码还是生成不了时间序列,等高手出现吧


请问你想要什么样的时间序列?能不能给个具体的应用的例子?
发表于 2008-5-5 09:56 | 显示全部楼层
建议楼主不要太依赖别人,大伙都给你那么多提示了,还是在此基础上自行解决吧
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 10:18 , Processed in 0.141010 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表