findldnode.m

来自「哈密顿马步图回路问题」· M 代码 · 共 74 行

M
74
字号
function [ tmpNode ] = findldNode( mask )%UNTITLED1 Summary of this function goes here%  Detailed explanation goes hereleastN=inf;ii=0;jj=0;for i=1:size(mask,1)    for j=1:size(mask,2)            if(mask(i,j)==0)                n=0;                if ((i-2)>0 & (j-1)>0)                    n=n+1;                                    end                if ((i-2)>0 & (j+1)<=size(mask,2))                    n=n+1;                                    end                if ((i-1)>0 & (j+2)<=size(mask,2))                    n=n+1;                                    end                if ((i+1)<=size(mask,1) & (j+2)<=size(mask,2))                    n=n+1;                                    end                if ((i+2)<=size(mask,1) & (j+1)<=size(mask,2))                    n=n+1;                                    end                if ((i+2)<=size(mask,1) & (j-1)>0)                    n=n+1;                                    end                if ((i+1)<=size(mask,1) & (j-2)>0)                    n=n+1;                                    end                if ((i-1)>0 & (j-2)>0)                    n=n+1;                                    end                                if n<leastN                    leastN=n;                    ii=i;                    jj=j;                end            end    end    endif leastN==inf    tmpNode=[];else    tmpNode(1,1)=(ii-1)*size(mask,2)+jj;    if ((ii-2)>0 & (jj-1)>0)        tmpNode(1,end+1)=(ii-3)*size(mask,2)+jj-1;                   	end	if ((ii-2)>0 & (jj+1)<=size(mask,2))        tmpNode(1,end+1)=(ii-3)*size(mask,2)+jj+1;                 	end	if ((ii-1)>0 & (jj+2)<=size(mask,2))        tmpNode(1,end+1)=(ii-2)*size(mask,2)+jj+2;                    	end	if ((ii+1)<=size(mask,1) & (jj+2)<=size(mask,2))        tmpNode(1,end+1)=ii*size(mask,2)+jj+2;                   	end	if ((ii+2)<=size(mask,1) & (jj+1)<=size(mask,2))        tmpNode(1,end+1)=(ii+1)*size(mask,2)+jj+1;                     	end	if ((ii+2)<=size(mask,1) & (jj-1)>0)        tmpNode(1,end+1)=(ii+1)*size(mask,2)+jj-1;                    	end	if ((ii+1)<=size(mask,1) & (jj-2)>0)        tmpNode(1,end+1)=ii*size(mask,2)+jj-2;                   	end	if ((ii-1)>0 & (jj-2)>0)        tmpNode(1,end+1)=(ii-2)*size(mask,2)+jj-2;                     	endend

⌨️ 快捷键说明

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