我正在寻找一种比使用“for”循环更有效的方法,来查找一个数组在细胞数组中的索引。我的问题如下:
a = [6,3]
b = {[1,10];[1,8,10];[8,10];[2,8];2;[2,4,5];[2,4];[];[3,6];[3,4,6];6;[3,5,6];[6,9];[1,6,9];[1,6,7,9]}
我需要找到'b'中'a'的索引。我的现有方法有效,但当'b'变得很大时,它会变得缓慢和麻烦。我对数组的顺序不感兴趣,只关心内容是否相同,这就是为什么我使用'setxor'方法的原因。下面的代码显示了我目前的做法的示例。
for num = 1:size(b,1)
new_array(num,1) = isempty(setxor(a, b{num,1}));
if (new_array(num,1) == 1)
indexOfArray = num;
break;
end;
end;
有没有更好的方法来做这件事? 提前谢谢, Vincent
[1 1 1 1 2]
与[2 1]
不相同,您可能需要先将它们排序,然后再检查是否完全相等。 - Dennis Jaheruddin