matlab如何生成一个确定1的个数的随机[0,1]对称矩阵(主对角线为0), 急!!!

如何用matlab生成n乘n的随机主对角线对称矩阵,
主对角线全为0,矩阵中1的个数不变,但1的分布是随机的,
比如20*20的矩阵,我想要有10个1,随机分布成主对角线为0的对称矩阵,
请问如何实现? 请高手指教,急!!!
重新叙述:n乘n的随机主对角线对称矩阵,所有元素为0和1,主对角线全为0,矩阵中1的个数确定,1的分布是随机的

第1个回答  2012-12-19
除了主对角线为0,1的个数确定外,其他元素是什么有要求吗?[0 1]之间的随机数???对称矩阵这个条件不用说了追问

其他元素都是0和1值

怎么在matlab中生成0和1的对称矩阵,要求要限制1的个数为20个,且对角...
根据你的需要设置N,就可以控制生成矩阵的大小 N=8; %矩阵大小假设为8x8,N>=5才能填下20个1 A=zeros(N); %先为矩阵A分配8x8的空间 n=N*(N-1)\/2; %除去对角线上三角阵的元素个数 r=randperm(n);%随机排乱1至n,n个自然数 a=(r<=10); %a是长度是n而其中有10个1的...

请问,怎么用matlab生成一个随机对称的矩阵
你看看这个咋样,矩阵大小可以自己调,inf出现的比例可以调里面的rnd N=10;%矩阵大小N*N select=[5:10,inf];a=zeros(N,N);for i=1:N for j=1:i;if j==i a(i,j)=inf;else rnd=rand;if rnd>0.3 a(i,j)=inf;a(j,i)=a(i,j);else b=randperm(length(select));a(i,j)=...

怎么在matlab中生成0和1的对称矩阵,要求限制每行1的个数为K,且对角线...
怎么在matlab中生成0和1的对称矩阵,要求限制每行1的个数为K,且对角线为0? 15  我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览52 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 matlab 对称矩阵 对角线 搜索资料 本地图片 图片链接 代码 提交回答 匿名...

MATLAB 生成n阶对称矩阵,其中主对角线元素为0,其他元素为0或1
楼主如果指的是随机生成的话,例如n=10时,可以用这样的语句:n = 10;temp = randint(n,n);matrix = tril(temp,-1)+triu(temp',0);matrix=matrix-diag(diag(matrix));lz有不明白的可以 doc 函数名

matlab生成对称正定矩阵
1.随机生成一个单位正交阵A(这个不困难,用到的只有for循环和函数rand)2.随机生成一个对角元素均大于0的对角矩阵B(这个更容易了,就是生成几个随机正数而已)3.C=A*B*A即为一个正定矩阵,同时也是一个对称矩阵。参考资料:http:\/\/www.pinggu.name\/bbs\/b71i341094.html ...

Matlab 用for语句编程产生一个随机对称矩阵?
rand 生成随机数,使用help rand 命令来自行学习.要对称,先生成上三角的那部分,然后下三角直接把i,j交换不就按对角线对折过来了.a(i,j)-->a(j,i)或者你生成一个就把对称位置也赋值为同一个数,找对称位置多简单,下标索引交换一下.see?

matlab 怎样生成一个N*N的对称矩阵,要主对角线的元素为0,其他随意?
假设n=30.n=30;a=zeros(n);for i=1:n for j=1:n if (i~=j)a(i,j)=rand;end end end 矩阵a就是你要的矩阵

Matlab随机生成一个n维对称矩阵,要求对角元为0,其他均为0或1。
A = rand(n)>0.5;A = tril(A,-1)+triu(A',1);

怎样在matlab中用循环语句生成一个对称阵
a = zeros(4)for i = 1:length(a)for j = 1:length(a)if i == j || i == 1 || j == 1 a(i,j) = 1;end end end a

matlab怎么输入这样的对称大矩阵
输入大型的对称大矩阵,可以用diag()对角阵函数命令来生成。实现方法:m = 150;A=4*diag(ones(2*m,1),0) + diag(ones(2*m-1,1),1) + diag(ones(2*m-1,1),-1)[m,n]=size(A)

相似回答