数学建模社区-数学中国
标题:
MATLAB处理简单的日期字符串
[打印本页]
作者:
jxb4137
时间:
2017-7-6 09:18
标题:
MATLAB处理简单的日期字符串
% CUMCM2012C
% Author ID:jxb4137
function dv = isdate( str )
% Input date string,returns the year, month, and day vectors.
if regexp(str,'20\d{2}/\d{1,2}/\d{1,2}') == 1 % Distinguish yyyy/mm/dd HH:MM:SS or yyyy/mm/dd
vec = regexp(str,' ','split');
vec = regexp(vec{1,1},'/','split'); % Process
dv = str2num(char(vec))'; % Output date vector
else
if regexp(str,'20\d{2}\-\d{1,2}\-\d{1,2}') == 1 % yyyy-mm-dd
vec = regexp(str,'-','split');
dv = str2num(char(vec))';
else
if regexp(str,'\d{1,2}/\d{1,2}/20\d{2}') == 1 % dd/mm/yyyy
vec = regexp(str,'/','split');
dv = fliplr(str2num(char(vec)))';
else
if regexp(str,'\d{1,2}\-\d{1,2}\-20\d{2}') == 1 % dd-mm-yyyy
vec = regexp(str,'-','split');
dv = fliplr(str2num(char(vec)))';
else
if regexp(str,'\d{8}') == 1 % yyyymmdd
vec = [str(1:4),str(5:6),str(7:8)];
dv = str2num(char(vec))';
else
dv = NaN;
end
end
end
end
end
end
复制代码
作者:
jxb4137
时间:
2017-7-7 20:32
% Author ID:jxb4137
function [matrix] = perm(vec,num)
comb_vec = nchoosek(vec,num);
matrix = [];
for i = 1:size(comb_vec,1)
comb_vec_perm = perms(comb_vec(i,:));
for j = 1:size(comb_vec_perm,1)
matrix = [matrix;comb_vec_perm(j,:)];
end
end
end
复制代码
作者:
jxb4137
时间:
2017-7-7 20:34
% Author ID:jxb4137
function [MST] = kruskal(G)
[r c v] = find(G);
RCV = [r c v];
index = RCV(:,1:2);
n = size(G,1);
MST = []; %最小生成树(MST = [u v w])记为一个三列的矩阵
while size(MST,1) < n-1
temp = min(RCV(:,3));
flag = find(RCV(:,3) == temp);
flag = flag(1);
i = RCV(flag,1);
j = RCV(flag,2);
if index(flag,1) ~= index(flag,2)
MST = [MST;RCV(flag,:)];
end
index(find(index == j)) = i;
RCV(flag,:) = [];
index(flag,:) = [];
end
end
复制代码
作者:
jxb4137
时间:
2017-7-7 20:35
% Author ID:jxb4137
function [D,path] = floyd(D)
n = length(D);
for i = 1:n
for j = 1:n
if i ~= j && D(i,j) == 0
D(i,j) = inf;
end
end
end
path = zeros(n);
for k = 1:n
% D = min(D,bsxfun(@plus,D(k,:),D(:,k)));% 调用内置匿名函数 外加,可以提高运算速度
for i = 1:n
for j = 1:n
if D(i,j) > D(i,k) + D(k,j)
D(i,j) = D(i,k) + D(k,j);
path(i,j) = k;
end
end
end
end
end
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5