我正在尋找一種有效的方法來做到這一點:
(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)
a并且b將給予我想獲得c; 所有資料都是雙重的。總會有兩列。
uj5u.com熱心網友回復:
我正在尋找一種有效的方法來做到這一點:
(a=1 2; 1 3; 2 3) - b=(1 2; 2 3) = (c=1 3)
你的符號是有點不一致,但看起來你想了解a和b作為集兩個數的元組。沒關系,就那樣做。
在 Python 中,這將非常容易;我只是使用 Python 來說明這個概念1:
a = {(1,2), (1,3), (2,3)}
b = {(1,2), (2,3)}
c = a - b
在matlab中,要使用setdiff;基本上,需要具有2元組作為行的a和b(因此a將是一個3×2的矩陣)。
1 這不是 100% 正確。我也在這里告訴你,如果你的代碼依賴于 Matlab 進行大量的集合操作,那么你將有漫長而緩慢的一天編碼煩人,另一天又是緩慢、煩人的 matlab 運行。無論是從開發的角度還是從執行的角度來看,這都不是 matlab 所擅長的。可能值得一看其他工具而不是 matlab!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/354185.html
標籤:MATLAB
下一篇:列的排序行的Matlab等效項
