如何在 MATLAB 中生成与向量 (1;...;1) 正交的正交矩阵?

How to generate an orthonormal matrix that is orthogonal to vector (1;...;1) in MATLAB?

我想知道如何在 MATLAB 中生成大小为 n*(n-1) 的矩阵 A,这样:

transpose(A) * ones(n,1) = zeros(n-1,1)

transpose(A) * A = eye(n-1,n-1) 

零空间运算符正是这样做的,它找到所有正交向量的矩阵:

>> null([1;1;1;1]')
ans =
-0.50000  -0.50000  -0.50000
 0.83333  -0.16667  -0.16667
-0.16667   0.83333  -0.16667
-0.16667  -0.16667   0.83333