首頁 > 其他

用matlab建立n階螺旋矩陣

2019-12-25 13:21:07

    螺旋矩陣是矩陣的一種,它可以是自中心向外螺旋逐漸增長,也可以字左上角為1開始向內螺旋增加。螺旋矩陣在資料加密等領域有應用。下面我就用matlab向大家展示如何實現n階螺旋矩陣。


1

螺旋矩陣簡介

    螺旋矩陣是指一個呈螺旋狀的矩陣,它的數位由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此迴圈。也可以自左下角最大,向右減小,向上減小,向左減小,向下減小,在向右減小,如此迴圈。不關怎樣,反正資料是呈螺旋狀的。如下圖所示:


2

用matlab編製螺旋矩陣的程式碼,本例是按照第一步中介紹的第二種方法編製的,即自左下角最大,向右減小,向上減小,向左減小,向下減小,在向右減小,如此迴圈。這裡我們編製了一個螺旋矩陣生成函數Spiral_Matrix(n),具體的程式碼請看下圖所示:


3

使用的時候直接呼叫Spiral_Matrix(n)函數即可,函數的輸入引數為n,即矩陣的階數。具體的呼叫指令為:[A,n]=Spiral_Matrix(n)。其中n需要替換為具體的數位,輸出引數是A和n,其中A為生成的螺旋矩陣,n為該螺旋矩陣的階數。下圖所示就是呼叫函數的結果:


4

下面分別是當n為奇數和偶數是的螺旋矩陣。可以看出當n為奇數時最大值在右上角,逆時針螺旋減小;當n為偶數時最大值在左下角,也是逆時針螺旋減小。



IT145.com E-mail:sddin#qq.com