【发布时间】:2016-08-11 05:47:40
【问题描述】:
我从一个动态改变矩阵大小的过程中的一个实例得到以下结果矩阵。
result =
1 1 0 0 1 0 0 0 1 0
1 0 1 1 1 1 1 1 1 1
0 1 1 1 1 0 1 1 1 1
0 1 1 1 1 0 0 0 1 0
1 1 1 1 0 1 1 1 1 1
0 1 0 0 1 1 0 0 1 0
0 1 1 0 1 0 1 0 1 0
0 1 1 0 1 0 0 1 1 0
1 1 1 1 1 1 1 1 0 1
0 1 1 0 1 0 0 0 1 1
以下代码的输出如下所示
D1=sum(sum((result)))
D1 =
63
D1 指定矩阵中 1 的总数,我需要将 1 的总数减少到最多 D1 的 30%,即 63 个必须变成 17-19 个 1 左右。
这样做必须满足以下条件。
- 所有列/行都不应全为零或全为一。
- 如果一行全为 1/0,则可以将其删除,并且矩阵的最终大小不应小于初始矩阵的 20%
绝望地寻求帮助!
提前致谢。
编辑:百分比更改为 30
【问题讨论】:
-
到目前为止你尝试过什么?删除需要是随机的还是可以按顺序遍历行?
-
如果按顺序执行就好了。 - Skogsv
-
删除行适合我的情况,但是减少的大小应该小于初始矩阵的 20%
-
使用
sum(result(:))而不是sum(sum... -
删除列怎么样?
标签: matlab networking matrix