Author Topic: Need help in understanding code  (Read 330 times)

Offline sank1038

  • Newbie
  • *
  • Posts: 1
  • Matlab Forum
    • View Profile
Need help in understanding code
« on: October 23, 2011, 09:00:35 PM »
My friend needed an explanation for the following two MATLAB codes. He asked me for help in this regard, but I couldn't help him. If anyone can have a look at these codes and give an explanation for the same, I would really appreciate it. Thanks and regards.
% Simulation for different network size
clear; % Initialize random number generator rand('state', 0); randn('state', 0);
global n node; global rreq_out rreq_in rreq_forward; global rreq_out_crosslayer rreq_in_crosslayer rreq_forward_crosslayer; global rrep_out rrep_in rrep_forward; global rrep_out_crosslayer rrep_in_crosslayer rrep_forward_crosslayer rrep_destination_crosslayer;
% Parameters apptype = 'crosslayer_searching'; % or 'dht_searching' log_file = 'log_crosslayer_'; max_time = 100; ntopo = 2; nsize = 2; itraffic = 5;
for isize = 10:10:(10*nsize) n = isize; maxx = sqrt(100*100*n/30); maxy = maxx; disp([' ===== Network size = ' num2str(n) ' maxx = maxy = ' num2str(maxx) ' =====']); for itopo = 1:ntopo % Reset the parameters parameter; rand('state', itopo); randn('state', itopo); % Generate a random network topology node = topo(n, maxx, maxy, 0); node = [node, zeros(n, 2)]; Event_list = []; for k=1:itraffic Event_list(k).instant = 1+100*k*slot_time; Event_list(k).type = 'send_app'; Event_list(k).node = k; Event_list(k).app.type = apptype; Event_list(k).app.key = n+1-k; Event_list(k).app.id1 = k; Event_list(k).app.id2 = itopo; Event_list(k).app.route = []; Event_list(k).app.hopcount = 0; Event_list(k).net = []; Event_list(k).pkt = []; end % Run the simulation tstart = clock; run(Event_list', max_time, [log_file, num2str(n)]); disp(sprintf('--- Network size= %d, Topology id=%d, Running time=%g \n', n, itopo, etime(clock, tstart))); % Log the numbers of RREQ and RREP n1=sum(rreq_out); n2=sum(rreq_in); n3=sum(rreq_forward); n4=sum(rreq_out_crosslayer); n5=sum(rreq_in_crosslayer); n6=sum(rreq_forward_crosslayer); n7=sum(rrep_out); n8=sum(rrep_in); n9=sum(rrep_forward); n10=sum(rrep_out_crosslayer); n11=sum(rrep_in_crosslayer); n12=sum(rrep_forward_crosslayer); n13=sum(rrep_destination_crosslayer); fid = fopen([log_file num2str(n) '_rreqrrep'], 'a'); if fid == -1, error(['Cannot open log file for RREQ and RREP']); end fprintf(fid, '%d %d %d %d %d %d %d %d %d %d %d %d %d %d \n', [itopo; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; n13]); fclose(fid); end end
% Simulation for mobility
clear; % Initialize random number generator rand('state', 0); randn('state', 0);
global n node; global rreq_out rreq_in rreq_forward; global rreq_out_crosslayer rreq_in_crosslayer rreq_forward_crosslayer; global rrep_out rrep_in rrep_forward; global rrep_out_crosslayer rrep_in_crosslayer rrep_forward_crosslayer rrep_destination_crosslayer; global mobility_model pos maxspeed maxpause; global maxx maxy;
% Parameters apptype = 'crosslayer_searching'; % or 'dht_searching' log_file = 'log_mobility_crosslayer_'; n = 10; maxx = 100; maxy = 100; nmobility = 2; nrepeat = 2; interval = 10; % second itraffic = 5; max_time = 100 + interval * (nrepeat + 1);
for imobility = 1:nmobility % Use the same initial topology rand('state', 1); randn('state', 1); % Generate a random network topology node = topo(n, maxx, maxy, 0); node = [node, zeros(n, 2)]; % Reset the parameters parameter; % Set parameters for mobility mobility_model = 'random_waypoint'; maxpause = 1; maxspeed = imobility; disp([' ===== Maximum speed = ' num2str(maxspeed) ' =====']); % Initialize and start mobility position_init; clear Event_list; for k=1:itraffic clear tempe; tempe.instant = 1 + 100*k*slot_time; tempe.type = 'send_app'; tempe.node = k; tempe.app.type = apptype; tempe.app.key = n+1-k; tempe.app.id1 = k; tempe.app.id2 = 0; tempe.app.route = []; tempe.app.hopcount = 0; tempe.net = []; tempe.pkt = []; for h = 1:nrepeat tempe.instant = tempe.instant + interval; tempe.app.id2 = h; Event_list((k-1)*nrepeat+h) = tempe; end end % Run the simulation tstart = clock; run(Event_list', max_time, [log_file, num2str(maxspeed)]); disp(sprintf('--- Maximum speed= %d, Running time=%g \n', maxspeed, etime(clock, tstart))); % Log the numbers of RREQ and RREP n1=sum(rreq_out); n2=sum(rreq_in); n3=sum(rreq_forward); n4=sum(rreq_out_crosslayer); n5=sum(rreq_in_crosslayer); n6=sum(rreq_forward_crosslayer); n7=sum(rrep_out); n8=sum(rrep_in); n9=sum(rrep_forward); n10=sum(rrep_out_crosslayer); n11=sum(rrep_in_crosslayer); n12=sum(rrep_forward_crosslayer); n13=sum(rrep_destination_crosslayer); fid = fopen([log_file num2str(maxspeed) '_rreqrrep'], 'a'); if fid == -1, error(['Cannot open log file for RREQ and RREP']); end fprintf(fid, '%d %d %d %d %d %d %d %d %d %d %d %d %d %d \n', [maxspeed; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; n13]); fclose(fid); end

Matlab and SimuLink Development Forum

Need help in understanding code
« on: October 23, 2011, 09:00:35 PM »