单片机的U盘读写模块的设计(8)

2019-04-09 12:21

唐 山 学 院 毕 业 设 计

for j=1:height; coordinate_y(i,j)=j; end end

[w z]=tforminv(tform,coordinate_x,coordinate_y); for i=1:width for j=1:height source_x=w(i,j); source_y=z(i,j);

if(source_x>width-1||source_y>height-1||double(uint16(source_x))<=1||double(uint16(source_y))<=1)

hab(a(1,1),a(1,1))=hab(a(1,1))+1; else

m=fix(source_x); n=fix(source_y); index_b=b(i,j); index_a0=a(m,n); index_a1=a(m+1,n); index_a2=a(m,n+1); index_a3=a(m+1,n+1) dx=source_x-m; dy=source_y-n;

hab(index_a0,index_b)=hab(index_a0,index_b)+(1-dx)*(1-dy); hab(index_a1,index_b)=hab(index_a1,index_b)+dx*(1-dy); hab(index_a2,index_b)=hab(index_a2,index_b)+(1-dx)*dy; hab(index_a3,index_b)=hab(index_a3,index_b)+dx*dy; end end end

habsum=sum(sum(hab)); index=find(hab~=0); pab=hab/habsum;

hab=sum(sum(-pab(index).*log2(pab(index))));

31

唐 山 学 院 毕 业 设 计

pa=sum(pab'); index=find(pa~=0);

ha=sum(sum(-pa(index).*log2(pa(index)))); pb=sum(pab); index=find(pb~=0);

hb=sum(sum(-pb(index).*log2(pb(index)))); mi=ha+hb-hab;

%一维搜索

function [Y,fY,step]=oneDimSearch(R,F,X,direction,len,handles) for i=-len:len

step_b=X+direction*i;

% mi(i+len+1)=Huxinxi(R,F,step_b(1),step_b(2),step_b(3) ); mi(i+len+1)=myMI(step_b(2),step_b(1),-step_b(3),handles ); % x=step_b(2),y=step_b(1),ang=-step_b(3) end

[oneDim_max,position]=max(mi); step=position-len-1; Y=X+direction*step;

fY=oneDim_max; %Powell

function [OUT]=POWELL(handles) F= handles.I;

R= handles.J; % reference image len=10; D=[1 0 0; 0 1 0; 0 0 1]; X0=[0 0 0]; d3=D(3,:);

[Z,fZ,step]=oneDimSearch(R,F,X0,d3,len,handles); d1=D(1,:);

[X1,fX1,step]=oneDimSearch(R,F,Z,d1,len,handles);

32

唐 山 学 院 毕 业 设 计

d2=D(2,:);

[X2,fX2,step]=oneDimSearch(R,F,X1,d2,len,handles); d3=D(3,:);

[X3,fX3,step]=oneDimSearch(R,F,X2,d3,len,handles); Cha=[fZ-fX1 fX1-fX2 fX2-fX3]; [maxCha,j0]=max(Cha); e=9;

FANSHU=X3-X0;

Y=sum( FANSHU.*FANSHU ); aaa=0; while( Y>e ) aaa=aaa+1; d=X3-Z;

[Z1,fZ1,landa]=oneDimSearch(R,F,X3,d,len,handles); temp=sqrt( (fX3-fZ1)/maxCha ); if( abs(landa) <= temp ) X0=Z1; else D(4,:)=d; for i=j0:3

D(i,:)=D(i+1,:); end X0=Z1; end

d3=D(3,:);

[Z,fZ,step]=oneDimSearch(R,F,X0,d3,len,handles); d1=D(1,:);

[X1,fX1,step]=oneDimSearch(R,F,Z,d1,len,handles); d2=D(2,:);

[X2,fX2,step]=oneDimSearch(R,F,X1,d2,len,handles); d3=D(3,:);

[X3,fX3,step]=oneDimSearch(R,F,X2,d3,len,handles); Cha=[fZ-fX1 fX1-fX2 fX2-fX3]; [maxCha,j0]=max(Cha);

33

唐 山 学 院 毕 业 设 计

FANSHU=X3-X0;

Y=sum( FANSHU.*FANSHU ); end

OUT(1)=X3(2); OUT(2)=X3(1); OUT(3)=-X3(3); OUT(4)=fX3;

function [OUT,varargout]=PSO(structure) D=3;

rand('state',sum(100*clock)); if nargin < 1

error('Not enough arguments.'); end

% PSO算法

VRmin=ones(D,1)*-20; VRmax=ones(D,1)*20; VR=[VRmin,VRmax]; minmax = 1;

P =[1 2000 20 4 2 2 0.9 0.2 1500 2 1e-5 20 1]; df=P(1); me=P(2); ps=P(3); mv=P(4); ac1=P(5); ac2=P(6); iw1 = P(7); iw2 = P(8); iwe = P(9); flagg=P(10); ergrd=P(11); ergrdep=P(12); plotflg=P(13); % PLOTTING

34

唐 山 学 院 毕 业 设 计

message = sprintf('PSO: %%g/%g iterations, GBest = %%g.\\n',me); pos=40*rand(ps,D)-20; vel=8*rand(ps,D)-4; % initial pbest positions vals pbest=pos;

for j=1:ps % start particle loop numin='0'; for i=1:D

numin=strcat(numin,',',num2str(pos(j,i))); end

%evstrg=strcat('feval(''',functname,'''',numin(2:end),',structure',')'); evstrg=strcat('feval(''myMI''',numin(2:end),',structure',')');

out(j)=eval(evstrg); % evaluate desired function with particle j end

pbestval=out; % initially, pbest is same as pos % assign initial gbest here also (gbest and gbestval) if minmax==1

[gbestval,idx1]=max(pbestval); % this picks gbestval when we want to maximize the function elseif minmax==0

[gbestval,idx1]=min(pbestval); % this works for straight minimization end

gbest=pbest(idx1,:); % this is gbest position tr(1)=gbestval; % save for output % start PSO iterative procedures

cnt=0; % counter used for updating display according to df in the options cnt2=0; % counter used for the stopping subroutine based on error convergence for i=1:me % start epoch loop (iterations)

if flagg==0 % randimization control, one random set for each epoch rannum1=rand(1); rannum2=rand(2); end

for j=1:ps % start particle loop

if flagg==1 % randomization control, one random set for each particle at each

35


单片机的U盘读写模块的设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:7-发扬百年公学优良传统,创办一流精品特色小学

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: