欢迎来到天天文库
浏览记录
ID:57272102
大小:12.00 KB
页数:2页
时间:2020-08-08
《产生任意点数的随机拓扑图matlab代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、%这个函数可以产生任意点数的随机拓扑图以及对应的连接矩%阵,需要输入的参数是点数numfunction[L]=connectionM(num)%产生数组A用来存放表示两点之间权值的矩阵A,也就是临接矩阵,那么两点之间权值不为零元素的个数即为该点的度数DEF=num;%设定一个东东方便改变随机点的个数L=rand(DEF);%产生DEF*DEF的随机矩阵fori=1:DEFL(i,i)=0;%将对角线上的数置为0endL=10*L;L=floor(L);%向下去整L=mod(L,2);fori=1:DEFforj=1:iL(j,i
2、)=L(i,j);%将A矩阵变为一个上三角或者下三角矩阵endendx=100*rand(1,DEF);y=100*rand(1,DEF);%产生10个随机的点plot(x,y,'r+');fori=1:DEFa=find(L(i,:)>0);%将A矩阵每行大于0的数的在该行的地址找出来放在a中forj=1:length(a)c=num2str(L(i,j));%将A中的权值转化为字符型holdon;line([x(i)x(a(j))],[y(i)y(a(j))]);%连线endendtitle('随机拓扑图');e=num2s
3、tr(DEF);legend(e);%左上角显示节点的个数form=1:DEFf=num2str(m);holdon;text((x(m)+x(m))/2,(y(m)+y(m))/2,f,'Fontsize',18);%将权值显示在两点连线中间endholdoff
此文档下载收益归作者所有