【发布时间】:2012-06-21 17:15:58
【问题描述】:
假设我有一个矩阵。这个矩阵是空白的,除了一些创建相同大小的矩形的点。创建矩形的每个点都有一个正数,该正数对于该矩形的所有点都相等。这个矩阵可能有几个矩形,每个矩形都有相同的数字。
现在想象一下,我有第二个具有相同结构的矩阵,但现在矩形位于其他位置,具有其他大小和其他值,就像图片中的矩阵 A 和 B。
我想合并两个矩阵,所以如果某个矩形有交集,则删除最小数量的矩形。
最好的方法是什么?我认为 fors 是可行的,但我想做 30 次,所以如果我不改进它,Octave 将需要很长时间才能完成它。
【问题讨论】:
-
如果重叠的矩形具有相同的值怎么办
-
在我的应用中发生这种情况很奇怪,所以然后删除你想要的。
-
使用
fors 并不一定意味着它与oneliner 相比效率低下。相反,将你的问题强行压缩到几个函数中可能会得到相反的结果。如果性能是您的限制因素,我建议以您管理的最有效方式开始使用fors,然后将其与答案中的任何紧凑解决方案进行比较。