螺旋矩阵是矩阵的一种,它可以是自中心向外螺旋逐渐增长,也可以字左上角为1开始向内螺旋增加。螺旋矩阵在数据加密等领域有应用。下面我就用matlab向大家展示如何实现n阶螺旋矩阵。

1.螺旋矩阵简介

螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。也可以自左下角最大,向右减小,向上减小,向左减小,向下减小,在向右减小,如此循环。不关怎样,反正数据是呈螺旋状的。如下图所示:

image.png

2.matlab编制螺旋矩阵的代码,本例是按照第一步中介绍的第二种方法编制的,即自左下角最大,向右减小,向上减小,向左减小,向下减小,在向右减小,如此循环。这里我们编制了一个螺旋矩阵生成函数Spiral_Matrix(n)具体的代码请看下图所示:

image.png


3.使用的时候直接调用Spiral_Matrix(n)函数即可,函数的输入参数为n,即矩阵的阶数。具体的调用指令为:[A,n]=Spiral_Matrix(n)。其中n需要替换为具体的数字,输出参数是An,其中A为生成的螺旋矩阵,n为该螺旋矩阵的阶数。下图所示就是调用函数的结果:

image.png


4.下面分别是当n为奇数和偶数是的螺旋矩阵。可以看出当n为奇数时最大值在右上角,逆时针螺旋减小;当n为偶数时最大值在左下角,也是逆时针螺旋减小。

image.png