資源簡介
這是我們課設做的一個gossiping仿真代碼。可執(zhí)行,很不錯的源碼注釋詳細
代碼片段和文件信息
clc
clear?all
close?all
%global?distMatrix;
%?通訊半徑設定
txRange?=?0.3;
%?定義節(jié)點的數量
no_of_nodes=100;?
%?給最后的節(jié)點定義個值
final_clock_val=ceil((no_of_nodes)^1.5);
%?給每個節(jié)點做標記
node_val=1:100%[5?4.6?6??5.5?6.2?3.8?7.1?3.4?6.3?7.2];
%?actual?average
actual_avr=mean(node_val);?
%?定義隨機節(jié)點x坐標位置
node_x=rand(1no_of_nodes);
%?定義隨機節(jié)點y坐標位置
node_y=rand(1no_of_nodes);?
%?數據可到達賦1
packet_acceptance=1;
%?從第一個節(jié)點到最后一個節(jié)點判斷可達性
for?j=1:final_clock_val
if??packet_acceptance==1
%?隨機給目的節(jié)點坐標賦值
xd=rand;?yd=rand;?
end
%?隨機從節(jié)點中找一個源節(jié)點,源節(jié)點乘以0~1之間隨機數
s=ceil(no_of_nodes*rand);
%?節(jié)點數據信息
ms=[node_val(s)?node_x(s)?node_y(s)?xd?yd];
%?節(jié)點到目的節(jié)點距離
distance=(?(node_x-xd).^2?+?(node_y-yd).^2?).^(1/2);
%?并把最小值賦給二維數組
[vald]=min(distance);
%下面這段代碼沒用到
%?創(chuàng)建一個no_of_nodes*no_of_nodes的零矩陣
%distMatrix?=?zeros(no_of_nodesno_of_nodes);
%循環(huán)計算節(jié)點之間的距離
%for?i=1:no_of_nodes
??%?for?j=1:no_of_nodes
??%????distMatrix(ij)=sqrt((node_x(i)-node_x(j))^2?+?(node_y(i)-node_y(j))^2);?
??????%distance?between?node?pairs
?%??end
%end
%?如果小于通訊半徑范圍內,就表示可以將數據傳給此節(jié)點,
%將可達節(jié)點表示出來
%global?connMatrix;
%connMatrix?=?(?distMatrix?
%上面代碼沒用帶
%___________________________________________________________
%?下面是畫節(jié)點函數
%
%draw_nodes(no_of_nodesnode_xnode_ynode_valsdxdyd);
%function?draw_nodes(no_of_nodesnode_xnode_ynode_valsdxdyd)
clear?message_chain
%?延遲0.5秒讓人看得清楚循環(huán)的過程
delay=0.2;
%隨機定義k在通訊半徑內隨機取點作為下一跳位置
????k=1;
????%將源節(jié)點賦值可到達節(jié)點
????message_chain(k)=s;
????
????
????%將停止鏈接賦值1
????stop_cond=1;
??????%判斷節(jié)點是否可到達,
- 上一篇:FIR數字濾波器的設計和實現
- 下一篇:廣義旁瓣相消器
評論
共有 條評論