我有兩個名爲「first_data *」和「second_data」的非常長的2D列表,我想找到相同的元素並將它們放在列表「final_data」中。我在這裏有一個MWE:查找二維數組中的公共元素
first_data = [1 2; 3 4]';
second_data = [1 2; 9 4]';
final = [];
for i=1:length(first_data(:, 1))
for j=1:length(second_data(:, 1))
if(first_data(i, 2) == second_data(j, 2))
final = [final first_data(i, 1)];
end
end
end
這給了我2,根據需要。這是有效的,但對於非常大的數據集來說,它非常計算密集。有沒有更有效的方法來編寫上述代碼?
您確定示例代碼有效嗎?你聲明'final_data'並在'if'塊中將其引用爲'final'。這兩個數組的示例輸入將會很有幫助,以防萬一我的答案解決方案無法爲您正確工作。 – harpun 2013-02-24 12:51:26
@harpun我已經澄清了我的問題,並添加了一個可用的小示例 – BillyJean 2013-02-24 13:02:50
數組中有三個常見元素。答案不應該是[1,2,4]而不是[2]? – harpun 2013-02-24 13:08:13