《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 218|回复: 4
收起左侧

[提问] 很着急谢谢大家!悬赏求助,

[复制链接]
发表于 2018-9-16 18:52:03 | 显示全部楼层 |阅读模式
2贝壳
如何在一个12*12的零矩阵中,随机插入16个1,使得在插入后的矩阵trace=0,行和(或者列)和全不为零,很着急谢谢大家

发表于 2018-9-17 13:43:53 | 显示全部楼层
本帖最后由 xiezhh 于 2018-9-17 23:43 编辑
  1. A = ones(12)-eye(12);
  2. id0 = find(A);
  3. while 1
  4.     A = zeros(12);
  5.     id = randsample(id0,16,false);
  6.     A(id) = 1;
  7.     if all(sum(A)) && all(sum(A,2))
  8.         break
  9.     end
  10. end
  11. A
复制代码
回复

使用道具 举报

 楼主| 发表于 2018-9-17 16:04:12 | 显示全部楼层

您好,代码跑出来并不是16个1,可以帮忙修改一下吗?实在是很着急很着急
回复

使用道具 举报

发表于 2018-9-17 21:17:08 | 显示全部楼层
之前有个地方疏忽了,已经改过来了
回复

使用道具 举报

发表于 2018-9-17 21:18:18 | 显示全部楼层
  1. A = ones(12)-eye(12);
  2. id0 = find(A);
  3. while 1
  4.     A = zeros(12);
  5.     id = randsample(id0,16,false);
  6.     A(id) = 1;
  7.     if all(sum(A)) && all(sum(A,2))
  8.         break
  9.     end
  10. end
  11. A
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2019-8-22 08:49 , Processed in 0.078024 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表