QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1253|回复: 3
打印 上一主题 下一主题

MATLAB处理简单的日期字符串

[复制链接]
字体大小: 正常 放大
jxb4137        

1

主题

9

听众

266

积分

  • TA的每日心情
    奋斗
    2017-12-24 14:04
  • 签到天数: 62 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    自我介绍
    热爱建模
    跳转到指定楼层
    1#
    发表于 2017-7-6 09:18 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    1. % CUMCM2012C
    2. % Author ID:jxb4137
    3. function dv = isdate( str )
    4. % Input date string,returns the year, month, and day vectors.
    5.     if regexp(str,'20\d{2}/\d{1,2}/\d{1,2}') == 1 % Distinguish yyyy/mm/dd HH:MM:SS or yyyy/mm/dd
    6.         vec = regexp(str,' ','split');
    7.         vec = regexp(vec{1,1},'/','split'); % Process
    8.         dv = str2num(char(vec))'; % Output date vector
    9.     else
    10.         if regexp(str,'20\d{2}\-\d{1,2}\-\d{1,2}') == 1 % yyyy-mm-dd
    11.         vec =  regexp(str,'-','split');
    12.         dv = str2num(char(vec))';
    13.     else
    14.         if regexp(str,'\d{1,2}/\d{1,2}/20\d{2}') == 1 % dd/mm/yyyy
    15.         vec =  regexp(str,'/','split');
    16.         dv = fliplr(str2num(char(vec)))';
    17.         else
    18.             if regexp(str,'\d{1,2}\-\d{1,2}\-20\d{2}') == 1 % dd-mm-yyyy
    19.                 vec =  regexp(str,'-','split');
    20.                 dv = fliplr(str2num(char(vec)))';
    21.                 else
    22.                     if regexp(str,'\d{8}') == 1 % yyyymmdd
    23.                         vec =  [str(1:4),str(5:6),str(7:8)];
    24.                         dv = str2num(char(vec))';
    25.                     else
    26.                         dv = NaN;
    27.                     end
    28.                 end
    29.             end
    30.         end
    31.     end
    32. end
    复制代码

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    jxb4137        

    1

    主题

    9

    听众

    266

    积分

  • TA的每日心情
    奋斗
    2017-12-24 14:04
  • 签到天数: 62 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    自我介绍
    热爱建模
    1. % Author ID:jxb4137
    2. function [matrix] = perm(vec,num)
    3.     comb_vec = nchoosek(vec,num);
    4.     matrix = [];
    5.     for i = 1:size(comb_vec,1)
    6.         comb_vec_perm = perms(comb_vec(i,:));
    7.         for j = 1:size(comb_vec_perm,1)
    8.             matrix = [matrix;comb_vec_perm(j,:)];
    9.         end
    10.     end
    11. end
    复制代码

    回复

    使用道具 举报

    jxb4137        

    1

    主题

    9

    听众

    266

    积分

  • TA的每日心情
    奋斗
    2017-12-24 14:04
  • 签到天数: 62 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    自我介绍
    热爱建模
    1. % Author ID:jxb4137
    2. function [MST] = kruskal(G)
    3.     [r c v] = find(G);
    4.     RCV = [r c v];
    5.     index = RCV(:,1:2);
    6.     n = size(G,1);
    7.     MST = [];                             %最小生成树(MST = [u v w])记为一个三列的矩阵
    8.     while size(MST,1) < n-1
    9.         temp = min(RCV(:,3));
    10.         flag = find(RCV(:,3) == temp);
    11.         flag = flag(1);
    12.         i = RCV(flag,1);
    13.         j = RCV(flag,2);
    14.         if index(flag,1) ~= index(flag,2)
    15.             MST = [MST;RCV(flag,:)];
    16.         end
    17.         index(find(index == j)) = i;
    18.         RCV(flag,:) = [];
    19.         index(flag,:) = [];
    20.     end
    21. end
    复制代码

    回复

    使用道具 举报

    jxb4137        

    1

    主题

    9

    听众

    266

    积分

  • TA的每日心情
    奋斗
    2017-12-24 14:04
  • 签到天数: 62 天

    [LV.6]常住居民II

    网络挑战赛参赛者

    自我介绍
    热爱建模
    1. % Author ID:jxb4137
    2. function [D,path] = floyd(D)
    3.     n = length(D);
    4.     for i = 1:n
    5.         for j = 1:n
    6.             if i ~= j && D(i,j) == 0
    7.                 D(i,j) = inf;
    8.             end
    9.         end
    10.     end
    11.     path = zeros(n);
    12.     for k = 1:n
    13. %         D = min(D,bsxfun(@plus,D(k,:),D(:,k)));% 调用内置匿名函数 外加,可以提高运算速度
    14.         for i = 1:n
    15.             for j = 1:n
    16.                 if  D(i,j) > D(i,k) + D(k,j)
    17.                     D(i,j) = D(i,k) + D(k,j);
    18.                     path(i,j) = k;
    19.                 end
    20.             end
    21.         end
    22.     end
    23. end
    复制代码

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-28 08:50 , Processed in 0.687730 second(s), 64 queries .

    回顶部