根据两列中的元素从另一个数组中减去一个数组



我正在寻找一种有效的方法来做到这一点:

(a=1 2; 1 3; 2 3)  - b=(1 2; 2 3) = (c=1 3)

或:

a=nchoosek([1 2 3 4 5 6],2) - b=(1 2; 1 3; 2 4;3 5;3 6) = (c=1 4;1 5;1 6;2 3;2 5;2 6;3 4;4 5;4 6; 5 6)

ab将被给出,我想获得c;所有数据都是双倍的。总会有两列。

我正在寻找一种有效的方法来做到这一点:

(a=1 2; 1 3; 2 3)  - b=(1 2; 2 3) = (c=1 3)

您的符号有点不一致,但看起来您想将ab理解为一组两个数字的元组。没关系,就是这样做。

在 Python 中,这将非常容易;我只是使用 Python 来说明这个概念¹:

a = {(1,2), (1,3), (2,3)}
b = {(1,2), (2,3)}
c = a - b

在 matlab 中,将使用 setdiff;基本上,你需要将 2 元组作为a行和b行(因此a是一个 3×2 矩阵)。

<小时 />

¹ 这不是 100% 正确的。我还在这里告诉你,如果你的代码依赖于 Matlab 做大量的集合操作,那么你将有漫长而缓慢的一天烦人的编码,以及另一个缓慢、烦人的 matlab 运行。这真的不是 matlab 擅长的事情,无论是从开发的角度来看,还是从执行方面。可能值得看看 matlab 以外的其他工具!

相关内容

  • 没有找到相关文章

最新更新