[ MATLAB ] 靶心矩阵

靶心矩阵

\begin{array}{lllll} {\color{Red} 3 }& {\color{Red} 3} & {\color{Red} 3} & {\color{Red} 3}& {\color{Red} 3}\\ {\color{Red} 3}& {\color{Blue} 2} & {\color{Blue} 2} & {\color{Blue} 2} & {\color{Red} 3} \\ {\color{Red} 3} & {\color{Blue} 2} & {\color{Orange} 1} & {\color{Blue} 2} & {\color{Red} 3} \\ {\color{Red} 3} & {\color{Blue} 2} & {\color{Blue} 2} & {\color{Blue} 2} & {\color{Red} 3}\\ {\color{Red} 3} & {\color{Red} 3} & {\color{Red} 3} & {\color{Red} 3} & {\color{Red} 3} \end{array}


思路:n维托普利兹矩阵 与其 逆时针旋转90°的矩阵 相加除以2,得到n维靶心矩阵。

Function a=bullseye(n)
     a=toeplitz(1:n);      %生成1到n的托普利兹矩阵
     a=(a+rot90(a))/2;      %rot90()逆时针旋转矩阵
end
>> t=toeplitz(1:5)
t =
     1     2     3     4     5
     2     1     2     3     4
     3     2     1     2     3
     4     3     2     1     2
     5     4     3     2     1

>> tr=rot90(t)
tr =
     5     4     3     2     1
     4     3     2     1     2
     3     2     1     2     3
     2     1     2     3     4
     1     2     3     4     5

>> (t+tr)/2
ans =
     3     3     3     3     3
     3     2     2     2     3
     3     2     1     2     3
     3     2     2     2     3
     3     3     3     3     3

 


 托普利兹矩阵 简称T型矩阵。其主对角线上的元素相等,平行于主对角线的线上的元素也相等;矩阵中的各元素关于次对角线对称,即T型矩阵为次对称矩阵。对于托普利茨矩阵 A:

A=\left[\begin{array}{cccccc} a_ {0} & a_{-1} & a_{-2} & \cdots & \cdots & a_{1-n} \\ a_{1} & a_{0} & a_{-1} & \ddots & \ddots & \vdots \\ a_{2} & a_{1} & a_{0} & \ddots & \ddots & \vdots \\ \vdots & \ddots & \ddots & \ddots & \ddots & a_{-2} \\ \vdots & \ddots & \ddots & \ddots & a_{0} & a_{-1} \\ a_{n-1} & \cdots & \cdots & a_{2} & a_{1} & a_{0} \end{array}\right]

 

你可能感兴趣的:(MATLAB,matlab)