注:本文整理于网上各位大神的思想和方法,供大家参考与学习
首先,提取系统的时间,在MATLAB中得到系统当前日期、时间也是经常用到的内容,由以下函数实现。
1.生成指定格式日期和时间
datestr-生成指定格式日期和时间,是字符型变量。
>>datestr(now)%其中now是获取当前日期和时间
ans
=
30-Dec-2009
16:05:16
其中输出格式可由用户指定,共有31种格式,以下是第26种格式,其它格式见下表。
>>datestr(now,26)
ans
=
2009/12/30
Standard MATLAB Date format
definitions
图1
图2
2.获取当前时间的数值
clock-获取当前日期和时间的数值,即clock=[year month day hour minute
seconds]。
>>format
short g
>>clock
ans =
2009 12 30 16 44
44.687
将clock函数取得的当前日期和时间取整,得
>>now=fix(ans)
now
=
2009 12 30 16 44
44
则now(1)=2008,
now(2)=5,......,now(6)=44
3.其他时间和日期函数或命令
>>date
ans =
30-Dec-2009
>>n=datenum('30-dec-2009')%给出0000年到给定时间的天数
n
=
734137
>>now;%获取当前时间至0000年的天数
>>T=floor(ans)
T
=
734137
>>datestr(now)
>>m=datevec(ans)%得到日期和时间向量
m
=
2009 12 30 16 24 24
>>t0=clock;
>>etime(clock,t0)%两次命令之间的时间间隔,之间可进行其它操作,计算消耗时间
ans =
2.0160
>>t=cputime;
>>T=cputime-t
T =
0.2031
>>tic%开始计时
>>toc%计时结束
Elapsed time is 2.751494 seconds.
>>T=today
T
=
734137
>>[a,b]=weekday(T,'long')
%星期函数,给出指定日期是星期几
a =
4
b =
Wednesday
>>d=eomday(2009,12)
%给出一个月的最后一天的日期
d =
31
>>d=eomdate(2009,12)
%给出一个月的最后一天的天数
d =
734138
>>dom
= day('30-Dec-2009')
%日期中的天
dom =
30
>>nd=yeardays(2009)
%某一年有多少天
nd =
365
>>calendar
Dec 2009
S
M
Tu
W
Th
F
S
0
0
1
2
3
4
5
6 7
8
9 10
11 12
13
14
15 16 17
18
19
20
21 22 23
24
25 26
27
28
29 30
31
0 0
关于datestr和datenum的功能[1]
这两个函数的功能需要从日期(和时间)的表示方法谈起。一个日期,它可以用一个字符串来表示,比如"2010-10-30
13:45:17",或"Oct.30,2010 3:45:17
PM",Matlab内置31种默认表示方法,同时还支持自定义格式。这种字符串的表示方式具有可读性,多用于外部展现。或者用一个向量来表示日期,比如[2010
10 30 13 45
17];日期还可以为一个序列值,比如上面的日期可以为73444.1573113426。在进行数据处理时常使用数字型的日期,因为储存、比较、计算都要快得多。Excel表格中日期外面看上去是一个字符串,但在内部存储的是一个数字,就是基于这个原因。
这样datestr和datenum的功能就很清晰了,datestr把指定日期转化为字符串形式,datenum则获取指定日期的序列值。
怎样给用日期给保存的图片命名(来源于MATLAB论坛)
sohu_007:
用plot作图然后可以用print保存,可以设置路径和文件名,clock命令可以得到当前的日期和时间。现在想把图片保存到'E:\Picture'文件夹下。请问怎样保存?
就保存成xx-yy-zz-pp-qq--rr.png格式的就行。
砺剑matlab:
你直接将clock得到的数值转化为字符串,当做文件名,然后就可以达到你的要求了啊!有个参考代码你试试
H=figure(1);
fplot('sin(x)',[0 2*pi]);grid on;
title('sin(x)');xlabel('x');ylabel('sin(x)');
str=clock;
filename=[num2str(str(1)),'-',num2str(str(2)),'-',num2str(str(3)),'-',...
num2str(str(4)),'-',num2str(str(5)),'-',num2str(round(str(6)))
];
[filename1,pathname1] =
uiputfile({'*.png','PNG(*.png)';...
'*.bmp','Bitmap(*.bmp)';...
'*.jpg','JPEG(*.jpg)';...
'*.gif','GIF(*.gif)';...
'*.*', 'All Files
(*.*)'},...
'Save
Picture',filename);
if filename1==0
return
else
hp=getframe(H);
imwrite(hp.cdata,fullfile(pathname1,filename1));
end
kaaaf123:
fn = ['E:\Picture\'
datestr(clock,'yy-mm-dd-HH-MM-SS'),'.png']
[1] Matlab中datestr和datenum函数效率问题,张志强,2010,11,02