Matlab 如何在给定顶点数的情况下生成随机对称矩阵?

Matlab 如何在给定顶点数的情况下生成随机对称矩阵?,matlab,matrix,random,transpose,Matlab,Matrix,Random,Transpose,在给定顶点数的情况下,有没有一种简单的方法可以生成0和1的随机矩阵,即在对角线上对称(对角线上只有零) 示例: somefunction(3) = [ 0 1 1; 1 0 0; 1 0 0]; somefunction(4) = [ 0 1 1 1; 1 0 0 1; 1 0 0 1;

在给定顶点数的情况下,有没有一种简单的方法可以生成0和1的随机矩阵,即在对角线上对称(对角线上只有零)

示例:

somefunction(3) =  [ 0 1 1; 
                     1 0 0; 
                     1 0 0]; 

somefunction(4) = [ 0 1 1 1; 
                    1 0 0 1; 
                    1 0 0 1; 
                    1 1 1 0];

您可以生成一个随机矩阵并提取其下三角部分,然后使用其转置执行

n = 4;
a=tril(randi(0:1,n),-1);
result = a|a.';

您可以生成一个随机矩阵并提取其下三角部分,然后使用其转置执行

n = 4;
a=tril(randi(0:1,n),-1);
result = a|a.';

第一个不是对称的,我错了。谢谢。第一个不是对称的。我错了。非常感谢。