一个matlab小程序:挑出沪市A股年报与一季度报在同一天发布的股票
function [a,b,c]=sameday(x,y)
% x,y分别是年报与次年一季度报的发布时间,其格式是:股票代码 公告年 季 发布年 月 日;
% 有些x和y的数据记录可能有重复,就是相邻两行的数据相同。下面两段程度分别去掉x和y中重复记录的部分数据;
id=zeros(size(x,1),1);
for i=2:size(x,1)
if x(i,1)==x(i-1,1)
id(i)=i;
end
end
id=find(id(:,1)==0);
x=x(id,:);
id=zeros(size(y,1),1);
for i=2:size(y,1)
if y(i,1)==y(i-1,1)
id(i)=i;
end
end
id=find(id(:,1)==0);
y=y(id,:);
% 由于数据不全,可能某些股票只有年报或一季度报的数据,下面两段程序找出同时又年报和一季度报数据的股票,并赋值给a和b;
id=zeros(size(x,1),1);
for i=1:size(x,1)
if any(y(:,1)==x(i,1))
id(i)=i;
end
end
id=find(id(:,1)~=0);
a=x(id,:);
id=zeros(size(y,1),1);
for i=1:size(y,1)
if any(a(:,1)==y(i,1))
id(i)=i;
end
end
id=find(id(:,1)~=0);
b=y(id,:);
% 找出年报与一季度报在同一天发布的股票,赋值给c;
if any(a(:,1)-b(:,1)~=0)
fprintf('Something goes wrong\n')
else
c=[a,b(:,[2:end])];
id=find( (c(:,1)>=600000)&(c(:,5)==c(:,10)) & (c(:,6)==c(:,11)) );
c=c(id,:);
end