⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trainfam.m

📁 利用matlab开发的art、artmap、fuzzy art等程序
💻 M
字号:
function map=trainfam(TNP,rho_init,alpha)F1=4;F2max=10000;F2b=2;CAT=0;epsilon=0.01;rho_ab=0.8;wij = ones(1,F1);wjk = ones(1,F2b);wijold=1;wjkold=1;spiral=spitrain;strain=size(spiral);ntrain=strain(1);niter=1while 1>0,   for nt=1:ntrain;    a(1)=spiral(nt,1);    a(2)=1-a(1);    a(3)=spiral(nt,2);    a(4)=1-a(3);    b(1)=spiral(nt,3);    b(2)=1-b(1);    rhoa = rho_init;    for j=1:CAT+1      T(j) = norm(min(a,wij(j,:)),1)/(alpha+norm(wij(j,:),1));    end    while 1>0,      while 1>0,        [Tmax,Jmax]=max(T);        if norm(min(a,wij(Jmax,:)),1) >= rhoa*norm(a,1)          break;        end        T(Jmax)=0;      end      if norm(min(b,wjk(Jmax,:)),1) >= rho_ab        break;      end      rhoa = norm(min(a,wij(Jmax,:)),1)/(F1/2)+epsilon;      T(Jmax)=0;    end    wij(Jmax,:)=min(a,wij(Jmax,:));    wjk(Jmax,:)=min(b,wjk(Jmax,:));    if Jmax==CAT+1      CAT=CAT+1;      wij = aug(wij,1);      wjk = aug(wjk,1);    end    rhoa=rho_init; end if size(wij)==size(wijold)  if wij == wijold    if size(wjk)==size(wjkold)      if wjk == wjkold        break;      end    end  endendwijold=wij;wjkold=wjk;ss=sprintf('niter=%d CAT=%d',niter,CAT)niter = niter+1;endwijwjkCAT,niterfor jy=1:TNP+1  for ix=1:TNP+1    a(1)=(ix-0.5)/TNP;    a(2)=1-a(1);    a(3)=(jy-0.5)/TNP;    a(4)=1-a(3);    for j=1:CAT      T(j) = norm(min(a,wij(j,:)),1)/(alpha+norm(wij(j,:),1));    end    T(CAT+1)= -1;    [Tmax,Jmax]=max(T);    [bmax,Kmax]=max(wjk(Jmax,:));    if Kmax==2      map(jy,ix)=0;    else      map(jy,ix)=100;    end  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -