这里有2 MATLAB代码是一个网络项目的一部分。我需要帮助确定相同的解释。

9的观点(30天)
我的朋友需要一个解释以下两个MATLAB代码。他问我的帮助在这方面,但我不能帮助他。如果任何人都可以看一看这些代码和给出的解释一样,我会很感激。感谢和问候。
%模拟不同的网络规模
清晰;
%初始化随机数生成器
兰特(“状态”,0);
randn (“状态”,0);
全球n个节点;
全球rreq_out rreq_in rreq_forward;
全球rreq_out_crosslayer rreq_in_crosslayer rreq_forward_crosslayer;
全球rrep_out rrep_in rrep_forward;
全球rrep_out_crosslayer rrep_in_crosslayer rrep_forward_crosslayer rrep_destination_crosslayer;
%的参数
apptype =“crosslayer_searching”;%或“dht_searching”
log_file =“log_crosslayer_”;
max_time = 100;
ntopo = 2;
nsize = 2;
itraffic = 5;
isize = 10:10 (10 * nsize):
n = isize;
maxx =√n / 100 * 100 * 30);
maxy = maxx的;
disp ([网络规模= ' ' = = = = =num2str (n)“maxx = maxy =”num2str (maxx的)“= = = = =”]);
itopo = 1: ntopo
%重新设置参数
参数;
兰特(“状态”,itopo);
randn (“状态”,itopo);
%生成一个随机的网络拓扑
节点=威尼斯平底渔船(n, maxx的maxy 0);
节点=[节点,0 (n, 2)];
Event_list = [];
k = 1: itraffic
Event_list (k)。在stant = 1+100*k*slot_time;
Event_list (k)。类型=“send_app”;
Event_list (k)。节点= k;
Event_list .app (k)。类型= apptype;
Event_list .app (k)。关键= n + 1 k;
Event_list .app (k)。id1 = k;
Event_list .app (k)。id2 = itopo;
Event_list .app (k)。路线= [];
Event_list .app (k)。hopcount = 0;
Event_list (k)。net = [];
Event_list (k)。pkt = [];
结束
%运行仿真
tstart =时钟;
运行(Event_list max_time [log_file num2str (n)));
disp (sprintf (- - -网络大小= % d,拓扑id = % d,运行时间= % g \ n '、n、itopo结束(时钟,tstart)));
%日志RREQ的数量和RREP
n1 =总和(rreq_out);
n2 =总和(rreq_in);
n3 =总和(rreq_forward);
陶瓷=总和(rreq_out_crosslayer);
它们被=总和(rreq_in_crosslayer);
n6 =总和(rreq_forward_crosslayer);
n7 =总和(rrep_out);
n8 =总和(rrep_in);
n9 =总和(rrep_forward);
n10 =总和(rrep_out_crosslayer);
n11 =总和(rrep_in_crosslayer);
n12 =总和(rrep_forward_crosslayer);
n13 =总和(rrep_destination_crosslayer);
fid = fopen ([log_file num2str (n)“_rreqrrep”),“一个”);
如果支撑材= = 1,错误([“不能为RREQ打开日志文件和RREP”]);结束
流(fid检测器,' % d % d % d % d % d % d % d % d % d % d % d % d % d % d \ n”,(itopo;n1;氮气;n3;陶瓷;它们;n6;n7;n8;n9; n10; n11; n12; n13]);
文件关闭(fid);
结束
结束
%模拟移动
清晰;
%初始化随机数生成器
兰特(“状态”,0);
randn (“状态”,0);
全球n个节点;
全球rreq_out rreq_in rreq_forward;
全球rreq_out_crosslayer rreq_in_crosslayer rreq_forward_crosslayer;
全球rrep_out rrep_in rrep_forward;
全球rrep_out_crosslayer rrep_in_crosslayer rrep_forward_crosslayer rrep_destination_crosslayer;
全球mobility_model pos maxspeed maxpause;
全球maxx maxy;
%的参数
apptype =“crosslayer_searching”;%或“dht_searching”
log_file =“log_mobility_crosslayer_”;
n = 10;
maxx = 100;
maxy = 100;
nmobility = 2;
nrepeat = 2;
间隔= 10;%的第二个
itraffic = 5;
max_time = 100 +间隔* (nrepeat + 1);
imobility = 1: nmobility
%使用相同的初始拓扑
兰特(“状态”1);
randn (“状态”1);
%生成一个随机的网络拓扑
节点=威尼斯平底渔船(n, maxx的maxy 0);
节点=[节点,0 (n, 2)];
%重新设置参数
参数;
%为流动设定参数
mobility_model =“random_waypoint”;
maxpause = 1;
maxspeed = imobility;
disp ([' = = = = =最大速度= 'num2str (maxspeed)“= = = = =”]);
%初始化并开始移动
position_init;
清晰的Event_list;
k = 1: itraffic
清晰的坦佩;
坦佩。在stant = 1 + 100*k*slot_time;
坦佩。类型=“send_app”;
坦佩。节点= k;
tempe.app。类型=apptype;
tempe.app。关键= n + 1 k;
tempe.app。id1 = k;
tempe.app。id2 = 0;
tempe.app。路线= [];
tempe.app。hopcount = 0;
tempe.net = [];
坦佩。pkt = [];
h = 1: nrepeat
坦佩。在stant = tempe.instant + interval;
tempe.app。id2 = h;
Event_list ((k - 1) * nrepeat + h) =坦佩;
结束
结束
%运行仿真
tstart =时钟;
运行(Event_list max_time [log_file num2str (maxspeed)]);
disp (sprintf ('——最大速度= % d,运行时间= % g \ n '、maxspeed结束(时钟,tstart)));
%日志RREQ的数量和RREP
n1 =总和(rreq_out);
n2 =总和(rreq_in);
n3 =总和(rreq_forward);
陶瓷=总和(rreq_out_crosslayer);
它们被=总和(rreq_in_crosslayer);
n6 =总和(rreq_forward_crosslayer);
n7 =总和(rrep_out);
n8 =总和(rrep_in);
n9 =总和(rrep_forward);
n10 =总和(rrep_out_crosslayer);
n11 =总和(rrep_in_crosslayer);
n12 =总和(rrep_forward_crosslayer);
n13 =总和(rrep_destination_crosslayer);
fid = fopen ([log_file num2str (maxspeed)“_rreqrrep”),“一个”);
如果支撑材= = 1,错误([“不能为RREQ打开日志文件和RREP”]);结束
流(fid检测器,' % d % d % d % d % d % d % d % d % d % d % d % d % d % d \ n”,(maxspeed;n1;氮气;n3;陶瓷;它们;n6;n7;n8;n9; n10; n11; n12; n13]);
文件关闭(fid);
结束

答案(0)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!