tic;
clear
Nofusers=17856;k1=1;
f1=fopen('d:\matlab\r2011a\bin\flixster_time\ratings_tf\len_flix1.txt');
c=fscanf(f1,'%d');
fclose(f1)
ini=1;
celcod=cell(1,17856);
f=fopen('d:\matlab\r2011a\bin\flixster_time\ratings_tf\flix_fina1.txt');
cod=fscanf(f,'%d');
for i=1:Nofusers
celcod{i}=cod(ini:c(i)+ini-1);
ini=ini+c(i);
end
gap = 0;
for b=1:Nofusers
cc=1;
for b1=1:Nofusers
if b~=b1
match=2;
mismatch=-1;
align1=[];
align2=[];
x=celcod{b};
y=celcod{b1};
x1(1:length(y),1:length(x))=0;
txt(1:length(y),1:length(x))=' ';
mat=struct('scor',x1,'pointer',txt);
for j=1:length(x)
mat(1,j).scor=x1(1,j);
mat(1,j).pointer='none';
end
for i=1:length(y)
mat(i,1).scor=x1(i,1);
mat(i,1).pointer='none';
end
max_i=1;
max_j=1; max_scor=1; score=0;
for i=2:length(y)
for j=2:length(x)
letter1=x(j);
letter2=y(i);
if letter1==letter2
dig_scor=mat(i-1,j-1).scor+match;
else
dig_scor=mat(i-1,j-1).scor+mismatch;
end
up_scor=mat(i-1,j).scor+gap;
left_scor=mat(i,j-1).scor+gap;
if (dig_scor<=0 && up_scor<=0 && left_scor<=0)
mat(i,j).scor = 0;
mat(i,j).pointer='none';
continue
end
if dig_scor>=up_scor
if dig_scor>=left_scor
mat(i,j).scor=dig_scor;
mat(i,j).pointer='diagonal';
else
mat(i,j).scor=left_scor;
mat(i,j).pointer='left';
end
else
if up_scor>=left_scor
mat(i,j).scor=up_scor;
mat(i,j).pointer='up';
else
mat(i,j).scor=left_scor;
mat(i,j).pointer='left';
end
end
if mat(i,j).scor > max_scor
max_i=i;
max_j=j;
max_scor=mat(i,j).scor;
end
end
end
max_scor;
j=max_j;
i=max_i;
while i>1 & j>1
if strcmp(mat(i,j).pointer,'none')==1
break;
end
if strcmp(num2str(mat(i,j).scor),'0')==1
break;
end
if strcmp(mat(i,j).pointer,'diagonal')==1
align1= [align1 {num2str(x(j))}];
align2=[align2 {num2str(y(i))}];
if strcmp(num2str(x(j)),num2str(y(i)))==1
score=score+2;
else
score=score-1;
end
i=i-1;
j=j-1;
elseif strcmp(mat(i,j).pointer,'left')==1;
align1= [align1 {num2str(x(j))}];
align2=[align2 '-'];
j=j-1;
score=score-1;
else
mat(i,j).pointer=='up'
align1= [align1 '-' ];
align2=[align2 {num2str(y(i))}];
i=i-1;
score=score-1;
end
end
align1=fliplr(align1);
align2=fliplr(align2);
scor1(b,b1)=score;
end
end
end
fclose all
toc;