给定顶点数量如何生成随机对称矩阵?

时间:2017-11-27 16:33:09

标签: 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; 
                    1 1 1 0];

1 个答案:

答案 0 :(得分:2)

你可以生成一个随机矩阵并提取它的下三角部分,然后用OR进行转置:

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