我正在创建一个表示以下交互的邻接矩阵。每个社区都有 m 社区和 n 代理商。每个代理都有一个概率 p 链接到他自己社区的成员,并且概率 q 被链接到另一个社区的成员。每个代理在网络上的位置由点x,y给出,它们存储在两个矩阵X,Y上,大小 m 由 n 。这是我的第一次尝试,但你可以看到它有几个错误。
ADJ=zeros(m*n); %Generates intraracial adjencecy matrix
losunos=randsample((n*m)^2,floor((n*m)^2*p)); %Generates edges according to p
ADJ(losunos)=1; %, ADJ(2,n+1)=1 if guy 2 from race 1 is connected to guy 1 from race 2
for k=1:m %Generates the edges
for i=1:n
for j=1:n
if ADJ(i,j)==1
plot([X(k,i) X(k,j)],[Y(k,i) Y(k,j)],'Color', colorstring(k))
end
end
end
end
欢迎任何建议。
答案 0 :(得分:1)
我认为它已经很好用了,你只是忘了在画一个新线时保留旧线
%random values
m=5;
n=20;
p=0.7;
q=0.3;
X=randi(100,m,n);
Y=randi(100,m,n);
colorstring=['b';'r';'g';'c';'k'];
ADJ=zeros(m*n); %Generates intraracial adjencecy matrix
losunos=randsample((n*m)^2,floor((n*m)^2*p)); %Generates edges according to p
ADJ(losunos)=1; %, ADJ(2,n+1)=1 if guy 2 from race 1 is connected to guy 1 from race 2
figure; %create figure
hold on %keep old plots while making new ones
for k=1:m %Generates the edges
for i=1:n
for j=1:n
if ADJ(i,j)==1
plot([X(k,i) X(k,j)],[Y(k,i) Y(k,j)],'Color', colorstring(k))
end
end
end
end
hold off %back to standard