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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TDengine 开发指南—— UDF函数

UDF 简介 在某些应用场景中&#xff0c;应用逻辑需要的查询功能无法直接使用内置函数来实现&#xff0c;TDengine 允许编写用户自定义函数&#xff08;UDF&#xff09;&#xff0c;以便解决特殊应用场景中的使用需求。UDF 在集群中注册成功后&#xff0c;可以像系统内置函数一…

C#提取CAN ASC文件时间戳:实现与性能优化

C#提取CAN ASC文件时间戳&#xff1a;实现与性能优化 在汽车电子和工业控制领域&#xff0c;CAN总线是最常用的通信协议之一。而ASC&#xff08;ASCII&#xff09;文件作为CAN总线数据的标准日志格式&#xff0c;广泛应用于数据记录和分析场景。本文将深入探讨如何高效地从CAN…

计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程

在学习计算机网络的过程中&#xff0c;理解 TCP/IP 模型与 OSI 模型的对应关系、掌握 TCP 与 UDP 的区别&#xff0c;以及熟悉 DNS 的查询过程&#xff0c;是打好网络基础的关键。本文将围绕这三部分进行简明扼要的讲解。 一、TCP/IP 模型与 OSI 七层模型的对应关系 1. OSI 七…

基于PHP的扎染文创产品商城

有需要请加文章底部Q哦 可远程调试 基于PHP的扎染文创产品商城 一 介绍 扎染文创产品商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap&#xff0c;jquery.js等。系统角色分为用户和管理员。 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二…

数据库学习(三)——MySQL锁

一、MySQL锁 当多个用户或进程并发操作数据库时&#xff0c;为了避免数据冲突、脏读、不可重复读、幻读等问题&#xff0c;数据库通过锁机制来保证数据的一致性和完整性。 MySQL 锁的总体分类&#xff1a; 分类维度类型说明按作用对象表级锁&#xff08;Table Lock&#xff…

<3>-MySQL表的操作

目录 一&#xff0c;创建表 二&#xff0c;查看表结构 三&#xff0c;修改表 四&#xff0c;删除表 一&#xff0c;创建表 语法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 eng…

【OSG学习笔记】Day 15: 路径动画与相机漫游

本章来学习下漫游相机。 路径动画与相机漫游 本届内容比较简单&#xff0c;其实就是实现物体的运动和相机的运动 当然这两个要一起执行。 贝塞尔曲线 贝塞尔曲线&#xff08;Bzier curve&#xff09;是一种在计算机图形学、动画制作、工业设计等领域广泛应用的参数曲线&am…

LabVIEW自感现象远程实验平台

LabVIEW开发自感现象远程实验平台&#xff0c;通过整合 NI数据采集设备、菲尼克斯&#xff08;Phoenix Contact&#xff09;继电器模块及罗技&#xff08;Logitech&#xff09;高清摄像头&#xff0c;实现远程数据采集、仪器控制与实时监控三大核心功能。平台突破传统实验装置局…

数据结构——F/图

一、图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构&#xff1a;G (V&#xff0c; E)&#xff0c;其中&#xff1a; 顶点集合V {x|x属于某个数据对象集}是有穷非空集合&#xff1b; E {(x,y)|x,y属于V}或者E {<x, y>|x,y属于V && Path(x, y)…

springcloud openfeign 偶现 Caused by: java.net.UnknownHostException

背景 最近查看日志发现某服务偶现Caused by: java.net.UnknownHostException 同时查看eureka的access.log 出现如下异常 10.xxx.xxx.xxx - - [27/May/2025:23:57:29 0800] “PUT /eureka/apps/{appName}/{host}:xxx-job:8082?statusUP&lastDirtyTimestamp1748351637173 H…

第12篇:数据库中间件日志设计与追踪系统落地实践

12.1 引言&#xff1a;中间件日志系统为何如此关键&#xff1f; 数据库中间件作为连接前端应用与后端数据库的“网关”&#xff0c;承载着路由、负载均衡、SQL 改写、权限控制等复杂逻辑。 在出现 性能问题、故障排查、安全审计 等场景中&#xff0c;若没有完善的日志体系&am…

OpenAI对抗法庭命令:捍卫ChatGPT用户隐私之战

人工智能公司OpenAI近期正积极对抗一项涉及隐私问题的法庭命令。该命令要求OpenAI保留所有ChatGPT用户日志&#xff0c;包括已删除的对话记录以及通过API调用生成的聊天内容。 命令背后的真实动机 值得注意的是&#xff0c;法院发布这一指令并非出于对用户隐私或内容安全的考…

嵌入式学习--江协stm32day5

USART 1. 引脚与接口层 异步引脚&#xff1a; TX&#xff1a;发送数据输出&#xff1b;RX&#xff1a;接收数据输入&#xff1b;SW_RX&#xff1a;单线半双工模式的接收引脚&#xff08;替代 RX&#xff09;。 同步引脚&#xff1a;SCLK&#xff1a;同步模式下的时钟输出&…

使用Fiddler抓包

有时候需要跟踪一些小程序的HTTP请求&#xff0c;但是无法像浏览器一样F12查看请求&#xff0c;因此需要借助其他的工具进行&#xff0c;在这里推荐使用Fiddler 配置 此时检查系统代理已经变成如下配置&#xff1a; 抓包 此时随便打开一个小程序&#xff0c;就可以进行抓包…

python学习打卡day47

DAY 47 注意力热图可视化 昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 # 可视化空间注意力热力图&#xff08;显示模型关注的图像区域&#xff09; def visualize_attention_map(model, test_loader,…

MySQL-运维篇

运维篇 日志 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息当数据库出现任何故障导致无法正常使用时&#xff0c;建议首先查看此日志。 该日志是默认开启的&am…

Prompt Tuning(提示调优)到底训练优化的什么部位

Prompt Tuning(提示调优)到底训练优化的什么部位 在自然语言处理(NLP)领域,Prompt Tuning(提示调优)是一种轻量级的模型优化技术,其核心目标是通过优化提示(Prompt)来引导预训练语言模型(如GPT、BERT等)更好地完成特定任务,而无需大规模调整模型的主体参数。 一…

基于FPGA的超声波显示水位距离,通过蓝牙传输水位数据到手机,同时支持RAM存储水位数据,读取数据。

基于FPGA的超声波显示水位距离 前言一、整体框架二、代码架构1.超声波测距模块2.蓝牙数据发送模块3.数码管数据切换模块4.数码管驱动模块6.串口驱动7.顶层模块8.RAM ip核 仿真相关截图 前言 随着工业化进程的加速和环境保护意识的提升&#xff0c;对水资源管理和水位监测的需求…

OD 算法题 B卷【水果摊小买卖】

文章目录 水果摊小买卖 水果摊小买卖 小王手里有点闲钱&#xff0c;想做点水果买卖&#xff0c;给出两个数组m, n&#xff0c; m[i]表示第i个水果的成本价&#xff0c;n[i]表示第i个水果能卖出的价格&#xff1b;假如现在有本钱k&#xff0c;试问最后最多能赚多少钱&#xff1…

(新手友好)MySQL学习笔记(6):分组查询,正则表达式

目录 分组查询 创建分组 过滤分组 分组查询练习 正则表达式 匹配单个实例 匹配多个实例 正则表达式练习 练习答案 分组查询练习答案 正则表达式练习答案 分组查询 创建分组 group by 子句&#xff1a;根据一个或多个字段对结果集进行分组&#xff0c;在分组的字段上…