我想知道如何n x n
按照以下顺序创建矩阵,例如
n=3;
1 -1 1
-1 1 -1
1 -1 1
n=4;
1 -1 1 -1
-1 1 -1 1
1 -1 1 -1
-1 1 -1 1
Run Code Online (Sandbox Code Playgroud)
每个号码n
.
另一种方法是产生一个meshgrid
点,然后计算:
(-1)^(x+y) ,
Run Code Online (Sandbox Code Playgroud)
其中x
和y
是网格内的2D坐标位置.这种方法背后的主要直觉是当你取-1并将其加到奇数时,你返回-1,如果它是偶数,则它是+1.通过查看2D网格中的每个位置,当您将(x,y)
坐标相加时,奇偶校验(奇数/偶数)在奇数和偶数之间交替...当然,假设整数坐标.您可以通过获取每个(x,y)
位置的总和,并将其应用于以-1为基础的功率系数来实现我们想要的交替矩阵.
通过考虑如何计算矩阵的行列式,我对这种方法的启发.查看拉普拉斯关于计算行列式的公式:http://en.wikipedia.org/wiki/Determinant#Laplace.27s_formula_and_the_adjugate_matrix
因此:
n = 3; %// Define n here
[X,Y] = meshgrid(1:n, 1:n);
A = (-1).^(X+Y)
A =
1 -1 1
-1 1 -1
1 -1 1
Run Code Online (Sandbox Code Playgroud)
如果您想显示以下内容n = 4
:
A =
1 -1 1 -1
-1 1 -1 1
1 -1 1 -1
-1 1 -1 1
Run Code Online (Sandbox Code Playgroud)