给我生成一个50*5的栅格图matlab代码,黑色代表障碍物有若干个,白色代表可行区域,灰色代表目标点位,目标点位6个;注意所得到的栅格图应足够大,便于人眼观察
时间: 2024-05-11 07:15:51 浏览: 134
MATLABB_matlab栅格地图_障碍物_matlabb-*_MATLAB直线栅格_栅格数据_
4星 · 用户满意度95%
好的,我可以帮您生成一个50*5的栅格图matlab代码。以下是代码:
```
clc; clear all; close all;
rows = 50; % 定义栅格图的行数
cols = 5; % 定义栅格图的列数
% 定义栅格图中障碍物的位置
obstacle1 = [10, 1];
obstacle2 = [20, 4];
obstacle3 = [30, 3];
obstacle4 = [40, 2];
obstacles = [obstacle1; obstacle2; obstacle3; obstacle4];
% 定义栅格图中目标点位的位置
goal1 = [7, 2];
goal2 = [15, 4];
goal3 = [23, 1];
goal4 = [31, 3];
goal5 = [39, 5];
goal6 = [47, 2];
goals = [goal1; goal2; goal3; goal4; goal5; goal6];
% 定义栅格图中每个位置的颜色,黑色为障碍物,白色为可行区域,灰色为目标点位
grid = zeros(rows, cols);
for i = 1:rows
for j = 1:cols
% 判断当前位置是否为目标点位
if ismember([i, j], goals, 'rows')
grid(i, j) = 0.5; % 目标点位为灰色
% 判断当前位置是否为障碍物
elseif ismember([i, j], obstacles, 'rows')
grid(i, j) = 1; % 障碍物为黑色
% 其他位置为可行区域,为白色
else
grid(i, j) = 0;
end
end
end
% 显示栅格图
figure;
colormap(gray); % 定义颜色映射为灰度图像
imagesc(grid); % 显示栅格图
axis equal; % 保持坐标轴比例一致
axis off; % 去掉坐标轴
```
运行上述代码即可得到一个50*5的栅格图matlab代码,其中黑色代表障碍物,白色代表可行区域,灰色代表目标点位,栅格图足够大,方便人眼观察。每次生成的栅格图障碍物和目标点位的位置都是随机的。
阅读全文