Algorithm MATLAB中的可对角化矩阵

Algorithm MATLAB中的可对角化矩阵,algorithm,matlab,Algorithm,Matlab,在MATLAB中是否有生成N x N随机对角化矩阵的方法?我尝试了以下方法: N=10 A=diag(rand(N,N)) 但它给了我一个nx1矩阵。我还需要矩阵是对称的。所有满秩矩阵都可以通过奇异值分解或特征分解对角化 如果你想要一个随机对称矩阵 N = 5 V = rand(N*(N+1)/2, 1) M = triu(ones(N)) M(M==1) = V M = M + tril(M.',-1) @戴维森斯塔是对的。我试过他的例子。对不起,这是错误的陈述。这里有一个与您的情况特别相

在MATLAB中是否有生成N x N随机对角化矩阵的方法?我尝试了以下方法:

N=10
A=diag(rand(N,N))


但它给了我一个nx1矩阵。我还需要矩阵是对称的。

所有满秩矩阵都可以通过奇异值分解或特征分解对角化

如果你想要一个随机对称矩阵

N = 5
V = rand(N*(N+1)/2, 1)

M = triu(ones(N))
M(M==1) = V
M = M + tril(M.',-1)

@戴维森斯塔是对的。我试过他的例子。对不起,这是错误的陈述。这里有一个与您的情况特别相关的真实陈述,但并不是那么一般:随机矩阵实际上保证是可对角化的

假设您考虑的是实值矩阵:每个实对称矩阵都是。因此,您可以随机生成一些矩阵
A
,例如使用
A=rand(N,N)
,然后对其进行对称化,例如

A = A + A'
对于复矩阵,可对角化的条件是矩阵为。如果
A
是一个任意的平方随机矩阵,可以通过

A = A * A'

可对角化->可对角化?另外,分布应该是什么?@user3598116,其中一个答案对你有帮助吗?“所有满秩矩阵都是可对角化的”不,例如,{x,1},{0,x}}不是可对角化的,而是当x!=0.你所说的虚拟担保是什么意思?从@DavidEisenstat获取矩阵,并将x设置为随机。这个随机矩阵如何“实际上保证”是可对角化的?这是一个非常特殊的矩阵形式。当我说“随机矩阵”时,我指的是像我的例子中那样构造的矩阵。(上部三角形中的每个元素都是随机均匀的iid,下部三角形是副本。)