函数:以当前时间为文件名的生成

今天上午编写程序时,发现要经常存盘,但是相同的文件自动存盘时文件名又相同,因此做了一个自动将当前的时间转换为待存盘文件名来进行存盘,函数文件名为 now_filename.m, 先写函数内容吧:

 

%----------------------filename: now_filename.m -----------------------

function [ fname ] = now_filename( pre, post )
%NOW_FILENAME convert current time to filename
% NOW_FILENAME returns current time to filename as:
%           2010-02-23_093803413
% NOW_FILENAME('pre', 'post') returns
%           pre2010-02-23_094339313post
% NOW_FILENAME('eion-', '.mat') returns
%           eion-2010-02-23_094410117.mat
% AUTHOR: TANG Houjian @ 2010_02_12 10_04
    if nargin == 0
        pre = '';
        post = '';
    elseif nargin == 1
        post = '';
    end
  
    t = clock; % Get current time
    fname = [pre, num2str(t(1:1), '%04d'), ...  % Year
                  num2str(t(2:3), '-%02d'), '_', ...   % -month-day_
                  num2str(t(4:5), '%02d'), ...  % hour min
                  num2str(fix(t(6)*1000),   '%05d'), post]; % sec+ms
end
%-----------------------------end of file now_filename.m-------------------

 

 

上述文件用到了clock和num2str指令,虽然date2str(now)也能将当前时间转换为类似 “12-Feb-2010 10:23:32” 的形式,但是由于有冒号,且文件名的长度也不一致,故舍弃,用

fname = [pre, num2str(fix(t), '%_02d'), post]

也能达到功能,但基于两个方面的考虑,一个是时分秒太长,一般只需要标识日期,另外一个就是如果两次生成的时间太短(1秒之内)会出现相同的文件名,因此把秒后面的毫秒值也加入了显示,且直接显示在秒之后,运行结果为

 

>> now_filename

ans =

20100212_102751062

 

>> now_filename('abc')

ans =

abs20100212_102751062

 

>> now_filename('abc', '.txt')

ans =

abc20100212_102751062.txt

 

在调用是一般只需要用save指令即可保存文件,注意save指令在保存以变量内容为存盘文件名时的格式是save(fname, ...)

例如, 指令

>> a = '我要存储的变量';

>> save fname, a

将保存为文件 fname.mat, 而指令

>> a = '我要存储的变量';

>> fname = 'abc.mat';

>> save(fname, 'a')

将保存为文件 abc.mat,注意此处要存储的变量 a 要加单引号,否则嘿嘿…………

 

 

=======================================

see also:

datestr, now, clock, sprintf, num2str, fix

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值