zigzag.m

来自「混沌生成的很多形式」· M 代码 · 共 27 行

M
27
字号
function Z=zigzag(X,Y)
%ZIGZAG-produce an index matrix with diagnal zigzag roassignment
error(nargchk(2,2,nargin));

dirn=1;
p=1;
Z=zeros(X,Y);
zs=size(Z);
for i=1:max(X,Y)*2-1
   x=1:i;
   y=i:-1:1;
   j=find(x>X|y>Y);
   x(j)=[];
   y(j)=[];
   if ~isempty(x)&~isempty(y)
      s=sub2ind(zs,x,y);
      ps=length(s);
      if dirn,
         Z(s)=p:p+ps-1;
      else 
         Z(s)=p+ps-1:-1:p;
      end
   end
   p=p+ps;
   dirn=~dirn;
end
Z=Z'-1;

⌨️ 快捷键说明

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