用matlab生成一个100x100的数字矩阵迷宫
时间: 2023-11-28 11:49:15 浏览: 71
可以使用以下代码生成一个100x100的数字矩阵迷宫:
```matlab
% 定义迷宫大小
n = 100;
% 初始化迷宫矩阵
maze = zeros(n);
% 定义随机起点和终点
start = [randi([1 n]), randi([1 n])];
goal = [randi([1 n]), randi([1 n])];
% 确保起点和终点不在同一位置
while isequal(start, goal)
goal = [randi([1 n]), randi([1 n])];
end
% 生成随机障碍物
for i = 1:n
for j = 1:n
if rand < 0.2 && ~isequal([i,j], start) && ~isequal([i,j], goal)
maze(i,j) = 1;
end
end
end
% 将起点和终点标记在迷宫中
maze(start(1), start(2)) = 2;
maze(goal(1), goal(2)) = 3;
% 显示迷宫
imshow(maze, 'InitialMagnification', 'fit')
```
这段代码首先定义了迷宫的大小为100x100,然后初始化了一个全零的迷宫矩阵。接下来,使用randi函数随机生成起点和终点,并使用while循环确保它们不在同一位置。然后,使用两个嵌套的for循环生成随机障碍物并将它们标记为1。最后,将起点和终点标记为2和3,并使用imshow函数显示迷宫。
您可以根据需要调整随机生成障碍物的概率和起点/终点的位置。
阅读全文