我想找到一種更有效的方式來找到除了使用'for'循環以外的cellarray中的數組索引。我的問題如下:在matlab中查找cellarray中的值(數組)
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;
有沒有更好的方法來做到這一點? 由於提前, 文森特
你對'內容是一樣的'是什麼意思?與[[1 1 1 2]]相同嗎?否則,您可能需要先對它們進行排序,然後檢查完全相等。 –
不,這兩個數組具有相同的值但內容不相同。我的意思是,[1 2 3],[1,3,2],[3,2,1]等所有內容都是相同的,但順序不盡相同。 – vincent