24小时热门版块排行榜    

查看: 416  |  回复: 2

125310366

新虫 (初入文坛)

[求助] 求 crazy climber的完整程序~有哪个大神指导一下,不胜感激!!

要crazy climber的完整程序,不是只有out=climber(c)的那个程序~包括后面的脊线链接 什么的都要~求助~~
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

18662515085

银虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢应助 2012-10-29 20:08:21
%crazy climber算法
function out=ridge ( c )
  %c是要提取脊线的时频矩阵,c元素为非负
[B,A]=size(c);
N=floor(A*B/4);
%生成N个Climber
temp=zeros(B,A);
for i=1:1:A*B
   if mod(i,4)==0
      temp(i)=1;
   end
end
T=max(max(c))-min(min(c));%系统初始化温度
Tt=T; %系统当前温度
t=2; %系统当前时间

while Tt>=T/1000 %对时间t做循环
   for i=4:4:A*B %对每个climber做移动
      if mod(i,B)==0
         heng=mod(i,B)+B;
      else
         heng=mod(i,B);
      end %计算climber的横坐标
     
      zong=ceil(i/B) %计算climber的纵坐标
      p=sign(2*rand-1); %横坐标以0.5的等概率分别向左和右移动
      if heng==1
         p=1;
      elseif heng==A
         p=-1;
      end %排除边界条件
      heng_new=heng+p;

      %纵坐标按规则移动
      p=sign(2*rand-1);
      if zong==1
         p=1;
      elseif zong==A
         p=-1;
      end %排除边界条件
      zong_new=zong+p;
      if c(heng_new,zong_new)>c(heng_new,zong)
         temp(heng,zong)=0;
         temp(heng_new,zong_new)=1;
      else
         pt=exp((c(heng_new,zong_new)-c(heng_new,zong))/Tt);
         if(rand<=pt)
             zong_new=zong+p;
             temp(heng,zong)=0;
             temp(heng_new,zong_new)=1;
         else
             zong_new=zong;
             temp(heng,zong)=0;
             temp(heng_new,zong_new)=1;
          end
      end
   end
   Tt=T/log2(t);
   t=t+1;
end
2楼2012-10-29 13:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

125310366

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 18662515085 at 2012-10-29 13:23:16
%crazy climber算法
function out=ridge ( c )
  %c是要提取脊线的时频矩阵,c元素为非负
=size(c);
N=floor(A*B/4);
%生成N个Climber
temp=zeros(B,A);
for i=1:1:A*B
   if mod(i,4)==0
      temp(i)=1 ...

这个程序我也有,可是算法后面还要求测度值,有点看不太懂是什么意思。。能解答下吗?
3楼2012-10-29 15:39:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 125310366 的主题更新
信息提示
请填处理意见