新的程序
by Pickle Cai
思路是,按照现有的写法,推倒重来。
办法是,另设一个数组,用来存储b数组和a数组的对应关系。上篇说的那个c1问题,已经不存在了。不过整个儿的还是有问题。第一篇里面提出的要点未能如数解决。程序如下。
m=2; %用m-2记录累积人数;
b={}; %邻接矩阵
c={}; %一维作者列表
d={}; %存放c数组与a数组的对应关系
for i=1:97;
for j=1:6;
if ~isnan(a{i,j})
c{m-1}=a{i,j}; %将a数组的内容读入c数组,包括重复
if m>2
for c1=1:m-2
if strcmpi(c{m-1},c{c1}) %若出现重复,则删除新读入的c{c1};
c{m-1}=[];
end
end
end
d{m-1}={m-1,i,j};
b{1,m}=c{m-1}; %搭建邻接矩阵的框架
b{m,1}=c{m-1};
if ~isnan(c{m-1})
m=m+1;
end
end
end
end
for d1=1:m-3 %给邻接矩阵赋值
for d2=d1+1:m-2
b{d2,d2}=0;
if d{d1}{2}==d{d2}{2}
b{d{d1}{1}+1,d{d2}{1}+1}=1;
b{d{d2}{1}+1,d{d1}{1}+1}=1;
end
end
end
这个程序的问题在于,虽然b数组是去除了重复了,虽然只出现一次的那些作者之间的联系正确了,但是多次出现的作者和其他人之间的联系,却被弄丢了。还得在d数组上动脑筋修改。先存在这里。早上8:30到晚上18:30不能上网,讨厌的,竟然今天才知道,更讨厌。
Subscribe via RSS