当前位置: 首页 > news >正文

MATLAB生成大规模无线通信网络拓扑(任意节点数量)

功能:

 生成任意节点数量的网络拓扑,符合现实世界节点空间分布和连接规律

效果:

30节点:

100节点:

500节点:

程序:

%创建时间:2025年6月8日
%zhouzhichao
%自然生长出n节点的网络% function [tp,tp_list] = large_nodes_tp(P_list,N)
close all
clear
N = 500;
P_list = ones(N,1);tp = zeros(N);
tp(1,2)=1;tp(1,3)=1;tp(1,4)=1;%原点附近的拓扑关系直接写好
x = zeros(N,1);%存储每个节点的位置,以连接各个节点
y = zeros(N,1);
a_list = zeros(N,1);%存储每个节点角度%%
%初级节点
%节点数量:1
%节点总数:1
%半径:0x(1) = 0;
y(1) = 0;c_R = 1;%当前圆环半径
c_M = 3;%当前圆环节点数量
c_index = 1;%当前节点index
last_r_list = [];while c_index<=Nr_list = [];%存储当前圆环上的节点alpha = 2*pi/c_M;initial_phase = rand(1)*2*pi;for i =1:c_Mdisp(["c_index: ",c_index])pause(0.01)r_list = [r_list,c_index];%存储当前节点%下面处理好当前节点的各种信息a = initial_phase+i*alpha;x(c_index)=c_R*cos(a);y(c_index)=c_R*sin(a);if ~isempty(last_r_list)p = min_d_node(c_index,last_r_list,x,y);tp(c_index,p) = 1;endc_index = c_index + 1;end%下一个圆环的半径增大last_r_list = r_list;%存储圆环上节点信息,方便下一个圆环生成节点时连接拓扑c_R = c_R + 1;a = round(1.8*c_M);if c_index + a<=Nc_M = a;elsec_M = N - c_index + 1;endend%%
%补环
x = x + (rand(size(x)) - 0.5) * 0.6;%位置x,y加一些随机性
y = y + (rand(size(y)) - 0.5) * 0.6;tp = tp + tp';
tp = add_circle(tp,x,y);
tp = add_circle(tp,x,y);
% tp = add_circle(tp,x,y);%%
%绘图% tp = tp + tp';grid on;
hold on;for i = 1:Nfor j = i+1:Nif tp(i, j) == 1plot([x(i) x(j)], [y(i) y(j)], 'b', 'Color', [125/255, 178/255, 251/255]);endend
endfor i =1:length(x)%     scatter(x(i), y(i), 100*P_list(i), [47/255, 132/255, 248/255], 'filled', 'MarkerFaceAlpha', P_list(i));scatter(x(i), y(i), 100, [47/255, 132/255, 248/255], 'filled', 'MarkerFaceAlpha', P_list(i));text(x(i)-0.1, y(i)+0.4, num2str(i), 'FontSize', 8, 'Color', [0/255, 0/255, 248/255]);
end
% scatter(x, y, [], [47/255, 132/255, 248/255], 'filled');
xlabel('X');
ylabel('Y');
x_min = round(min(x)-1);
x_max = round(max(x)+1);
y_min = round(min(y)-1);
y_max = round(max(y)+1);
xlim([x_min x_max]);
ylim([y_min y_max]);
set(gca, 'FontName', 'Times New Roman');axis off;tp_list = [];% 遍历拓扑矩阵,找到所有有连接的节点对
for i = 1:Nfor j = i+1:Nif tp(i, j) == 1% 添加节点对 [i, j] 到 nodePairs 矩阵tp_list = [tp_list; i, j];endend
end

相关文章:

  • 单片机 传感器知识讲解 (一)红外避障模块,声控模块,人体红外模块
  • MS8551/MS8552/MS8554 单电源、轨到轨输入输出、高精度运放,可替代AD8551/AD8552/AD8554
  • Vue3学习(watchEffect,标签的ref属性,计数器,defineExpose)
  • iview组件库:当后台返回到的数据与使用官网组件指定的字段不匹配时,进行修改某个属性名再将response数据渲染到页面上的处理
  • LLMs 系列科普文(2)
  • LR修图软件|Lightroom 2025网盘下载与安装教程指南
  • Redis知识体系
  • 【机器学习】PCA主成成分分析
  • 19-Oracle 23 ai Database Sharding-知识准备
  • 人工智能学习08-类与对象
  • 常见 DOM 事件全解析
  • JVM 类加载器 详解
  • FreeRTOS同步和互斥
  • JAVA 对象 详解
  • 【2025CVPR】模型融合新范式:PLeaS算法详解(基于排列与最小二乘的模型合并技术)
  • ES6 核心语法手册
  • SQL导出Excel支持正则脱敏
  • AD规则设置-铜皮规则,阻焊规则,实时DRC
  • AI时代:学习永不嫌晚,语言多元共存
  • LambdaqueryWrapper的介绍与使用
  • 网站建设及推广服务的合同范本/老客外链
  • 做易拉宝的素材网站/windows优化大师免费
  • 网站恶意刷/外包网络推广营销
  • 自己有网站怎么做点卡?/西安关键词快速排名
  • 江西师范大学两学一做专题网站/skr搜索引擎入口
  • 做盗链网站/西安百度推广优化托管