我有两个向量,A = [1,3,5]
和B = [1,2,3,4,5,6,7,8,9,10]
。我希望从C=[2,4,6,7,8,9,10]
B
中提取A
中的一些元素来获取A
。
我不想使用循环,因为这是来自真实数据模拟的简化问题。在实际情况中,B
和A
很大,但B
中包含<Employees>
<Employee
Name="Name1"
Address="Address">
<Qualification Name="Degree"/>
</Employee>
</Employees>
。
答案 0 :(得分:8)
以下是两种方法,
C=setdiff(B,A)
但如果在B
中重复了这些值,则只会在C
或
C=B(~ismember(B,A))
将保留B
中的重复值。
答案 1 :(得分:0)
使用unique
,sort
和diff
-
C = [A B];
[~,~,idC] = unique(C);
[sidC,id_idC] = sort(idC);
start_id = id_idC(diff([0 sidC])==1);
out = C(start_id(start_id>numel(A)))
样品运行 -
案例#1(问题样本):
A =
1 3 5
B =
1 2 3 4 5 6 7 8 9 10
out =
2 4 6 7 8 9 10
案例#2(更通用的案例):
A =
11 15 14
B =
19 14 6 8 9 11 15
out =
6 8 9 19