如何用Matlab生成只含0,1值的随机矩阵,要求限制1的数量,且对角线上的值都为0. 谢谢~

比如矩阵规模为20*20,其中1的数量为43,其余都为0.希望有大神帮忙~... 比如矩阵规模为20*20, 其中1的数量为43,其余都为0.
希望有大神帮忙~
展开
allstars52
2013-03-21 · TA获得超过1596个赞
知道小有建树答主
回答量:593
采纳率:75%
帮助的人:583万
展开全部
A=zeros(4,4);
idx=randperm(4*4);
A(idx(1:5))=1;

A(logical(eye(size(A))))=0
更多追问追答
追问
您好,这里面哪个值决定了1的数量呢?谢谢~~
追答
idx(1:5)    5决定了1的数量
不过还有个问题,如果正好对角线上有1的话,最后会被替换成0
需要从dx=randperm(4*4)中去掉对角线的标号
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式