预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

螺旋矩阵functiony=luoxuan(n,flag1,flag2)%输出n阶螺旋矩阵%例如n=2时%输出:12%43%n=3时%输出:123%894%765%flag1=1顺时针%输出:123%894%765%flag1=2逆时针%输出:187%296%345%flag2=1内旋%输出:123%894%765%flag2=2外旋%输出:987%216%345%程序制作者:realghost%邮箱:slqinyi@163.com%最后修改时间:2011-09-20%本程序没有版权,可以随意复制,传播,有任何问题可以通过邮件联系。ifnargin<1n=3;flag1=1;flag2=1;elseifnargin<2flag1=1;flag2=1;endnmax=n*n;y=zeros(n);k=0;lastnum=0;while1%rightarrowright=1:n-2*k;temp=lastnum+right;y(1+k,1+k:n-k)=temp;lastnum=temp(end);iflastnum==nmaxbreakend%downarrowdown=[1:n-2*(k+1)]';temp=lastnum+down;if~isempty(temp)y(1+k+1:n-k-1,n-k)=temp;lastnum=temp(end);iflastnum==nmaxbreakendend%leftarrowleft=n-2*k:-1:1;temp=lastnum+left;y(n-k,1+k:n-k)=temp;lastnum=temp(1);iflastnum==nmaxbreakend%uparrowup=[n-2*(k+1):-1:1]';temp=lastnum+up;y(1+k+1:n-k-1,1+k)=temp;lastnum=temp(1);iflastnum==nmaxbreakendk=k+1;endifflag1==2y=y';endifflag2==2fori=1:nforj=1:ny(i,j)=nmax-y(i,j)+1;endendend运行效果: