您现在的位置:首页 >> 技术文章 >> MATLAB技术 >> 内容

MATLAB代做|FPGA代做|Python代做--PCNN走迷宫算法

时间:2019-1-5 14:49:06 点击:

  核心提示:MATLAB代做|FPGA代做|Python代做--PCNN走迷宫算法...

%% 4连通迷宫求解
function main4
clc
close all
%%
load data2 map start desti%map存放的是地图,-1为障碍,0为通路,且最外圈一定有一圈-1障碍,start为起点,desti为终点
N=map; 
[w,h]=size(N);
thita=zeros(w,h);
Y=zeros(w,h);
thita(start(1),start(2))=inf;
Y(start(1),start(2))=1;
N(start(1),start(2))=1;
k=2;
while(1)
U=f(N,Y);
Y=U>thita;%判断是否点火
N(Y)=k;
thita(Y)=inf;
k=k+1;
if N(desti(1),desti(2))~=0
break;
end
if Y==0
disp('未找到路径')
return;
end
end
backtrack2(N,desti);
end
%% 子函数
function U=f(N,Y)
U=0*Y;
[r,c]=find(Y);
for i=1:length(r)
if N(r(i)+1,c(i))~=-1
U(r(i)+1,c(i))=1;
end
if N(r(i)-1,c(i))~=-1
U(r(i)-1,c(i))=1;
end
if N(r(i),c(i)+1)~=-1
U(r(i),c(i)+1)=1;
end
if N(r(i),c(i)-1)~=-1
U(r(i),c(i)-1)=1;
end
end
end
%% 路径回溯,只找到一条路径
function RGB=backtrack2(N,desti)
steps=N(desti(1),desti(2));
trace=zeros(steps,2);
trace(steps,:)=desti;
for i=steps:-1:2
if N(trace(i,1)+1,trace(i,2))==i-1
trace(i-1,1)=trace(i,1)+1;
trace(i-1,2)=trace(i,2);
elseif N(trace(i,1),trace(i,2)+1)==i-1
trace(i-1,1)=trace(i,1);
trace(i-1,2)=trace(i,2)+1;
elseif N(trace(i,1)-1,trace(i,2))==i-1
trace(i-1,1)=trace(i,1)-1;
trace(i-1,2)=trace(i,2);
elseif N(trace(i,1),trace(i,2)-1)==i-1
trace(i-1,1)=trace(i,1);
trace(i-1,2)=trace(i,2)-1;
end
end
%% draw
[w,h]=size(N);
R=zeros(w,h);
G=ones(w,h);
B=zeros(w,h);
R(N==-1)=0;
G(N==-1)=0;
B(N==-1)=0;
for i=1:steps
R(trace(i,1),trace(i,2))=1;
G(trace(i,1),trace(i,2))=0;
B(trace(i,1),trace(i,2))=0;
end
RGB(:,:,1)=R;
RGB(:,:,2)=G;
RGB(:,:,3)=B;
figure,imshow(RGB)
print -r300 -dpng '走迷宫.png'

end

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:PCNN走迷宫算法 来源:PCNN走迷宫算法
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment