如果A是B的向量子集,我怎样才能在MATLAB中找到B中的A的索引?

Uni*_*ine 0 indexing matlab

考虑行向量A和行向量B.例如:

A = [1 2 3 7 8 10 12];
B = [1 1 2 2 2 3 5 6 6 7 7 7 8 8 10 10 10 11 12 12 12 13 15 16 18 19];
Run Code Online (Sandbox Code Playgroud)

A先前已被检查为B的子集.通过子集,我特别指的是A中的所有元素都可以在B中找到.我知道A中的元素不会重复.但是,B中的元素可以随意重复多次或多次.我用以下方法检查了这个条

is_subset = all(ismember(A,B));
Run Code Online (Sandbox Code Playgroud)

完成所有这些后,我需要知道B中A元素的索引,包括这些元素在B中重复的时间.对于上面的示例A和B,输出将是:

C = [1 2 3 4 5 6 10 11 12 13 14 15 16 17 19 20 21];

Sar*_*ama 5

使用ismember找到相关的逻辑指标.然后使用将它们转换为线性索引find.

C = find(ismember(B,A));
Run Code Online (Sandbox Code Playgroud)