2015-10-06 250 views
-2

我不知道如何生成大小n*(n-1)的矩阵A在MATLAB这样的:如何在MATLAB中生成与向量(1; ...; 1)正交的正交矩阵?

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

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

你有什么已经试过了? –

+0

我还没有实现任何东西。 –

+3

我们希望看到你尝试一些事情,因为它有助于缩小如何回应的范围。你也可以指出你知道哪些部分,哪些部分具体是你不知道的。尝试使用代码作为你的例子 –

回答

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 
+0

它工作成功,并感谢您的青睐。但是,我想知道是否可以随机选择这样一个矩阵A?也就是说,每当我重复上述公式时,计算的A就会不同。 –

+0

你想A是随机的吗?右乘以维数(n-1)*(n-1)的随机旋转(=正交)矩阵。 – SpamBot

+0

是的,它的工作原理。用大小为(n-1)*(n-1)的随机标准正交均值矩阵对右乘A.谢谢你的青睐。 –