我有两个名为“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