传感器节点分布图绘制-matlab

%%----------------------传感器分布图---------------------------------
%AreaLength:区域边长;SensorNum:传感器个数;SensorX:传感器节点的x坐标;SensorY:传感器节点的Y坐标---这里可能要考虑一下传感器节点布置的密度问题,不过对于水声网络意义不大,我们这里假定节点随机分布
AreaLength=1000;
SensorNum=400;
SensorX=rand(1,400)*1000;
SensorY=rand(1,400)*1000;
figure(1);
scatter(SensorX,SensorY,8);
%%
下面是一个使用 MATLAB 编写的程序,用于在 `100m × 100m` 的监测区域内**随机部署 N 个传感器节点**,并**将这些节点的位置可视化**,同时标出位于右上角 `(100, 100)` 的**基站(Sink)**。 ### ✅ 功能说明: - 输入传感器数量 `N` - 随机生成节点的 `(x, y)` 坐标(范围:0 到 100) - 可视化所有传感器节点(用点表示) - 标出基站位置(用星号标记) - 添加图例、标题和坐标轴标签 --- ### 📌 MATLAB 代码如下: ```matlab % 随机部署传感器节点并可视化 % 区域:100m x 100m % 基站位于 (100, 100) clear; clc; close all; % 参数设置 area_size = 100; % 监测区域边长(单位:米) N = input('请输入传感器节点数量 N: '); % 用户输入节点数 % 随机生成传感器节点坐标 (x, y) ∈ [0, area_size] sensor_x = area_size * rand(N, 1); % x 坐标 sensor_y = area_size * rand(N, 1); % y 坐标 % 基站(Sink)位置 sink_x = area_size; sink_y = area_size; % 绘图 figure; plot(sensor_x, sensor_y, 'bo', ... % 蓝色圆圈表示传感器 'MarkerFaceColor', 'b', ... % 实心圆 'MarkerSize', 6, ... 'DisplayName', '传感器节点'); hold on; plot(sink_x, sink_y, 'r*', ... % 红色星号表示基站 'MarkerSize', 15, ... 'LineWidth', 2, ... 'DisplayName', '基站 (Sink)'); xlabel('X (m)'); ylabel('Y (m)'); title(['随机部署 ', num2str(N), ' 个传感器节点 (区域: 100m × 100m)']); axis([0 area_size 0 area_size]); % 设置坐标轴范围 axis square; % 保证图形比例一致 grid on; legend('show'); % 显示图例 hold off; % 输出信息 fprintf('已成功部署 %d 个传感器节点,并完成可视化。\n', N); ``` --- ### 🔍 代码解释: | 代码部分 | 说明 | |--------|------| | `rand(N, 1)` | 生成 N×1 的随机浮点数矩阵,值在 [0,1] 之间,乘以 100 后变为 [0,100] | | `plot(..., 'bo')` | 绘制蓝色圆形点表示传感器节点 | | `'MarkerFaceColor'` | 设置填充颜色为实心 | | `plot(sink_x, sink_y, 'r*')` | 用红色星号标出基站 | | `axis square` | 确保坐标系是正方形,避免图像拉伸变形 | | `legend('show')` | 显示图例说明 | --- ### 🧪 示例运行效果: 假设你输入 `N = 50`,程序会在 100×100 区域内随机分布 50 个蓝色点,并在右上角画一个红色星号代表基站。 --- ### ✅ 扩展建议(可选增强功能): 你可以在此基础上添加以下特性: - 给每个节点编号 - 设置通信半径并绘制连接关系 - 计算到基站的距离 - 过滤距离过远的节点(能量考虑) - 使用动画逐步部署节点 例如:给节点编号可以这样加: ```matlab for i = 1:N text(sensor_x(i), sensor_y(i), num2str(i), 'FontSize', 8, 'Color', 'k', 'HorizontalAlignment','center'); end ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值