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