假设我有
A = [1 2 3 4 5 6 7 8 9 10];
B = [1 2 4 5 8];
我想在A中找到一个但在B中没有的值。我可以执行以下操作:
temp = setdiff(A,B);
if ~isempty(temp)
myValue = temp(1);
else
myValue = [];
end
但是有更快的方法,因为我只需要一个值,而不是全部吗?效率很重要:)
答案 0 :(得分:3)
由于A
为1:n
,B
中不在A
的{{1}}的第一个值是B
的排序元素之间的差异大于1。
sortedB = sort(B);
firstMissingValue = find(diff([0,sortedB,size(A,1)])>1,1,'first');
答案 1 :(得分:0)
也许试试看?对我来说它更快,也许你可以试试。
a=ismember(A,B);
if sum(a)~=0
myValue = A(a);
myValue = myValue(1);
else
myValue = [];
end