比较单元格数组a和b,返回来自b中的元素索引,Matlab

时间:2015-08-11 22:19:24

标签: arrays matlab

我试着在标题中总结一下。

我有两个相似的单元格数组(带字符串),但A的元素数多于B. 我想找到A中那些不在B中的元素的索引。 A和B具有以相同方式排序的元素,除了A具有随机间隔的额外插值。

在Python中我会做这样的事情:

A = ["a", "b", "c", "d", "e", "f"]
B = ["a","c", "d", "f"]

indices = []

for i in A:
  if i not in B:
    indices.append(A.index(i))

不幸的是,我需要Matlab中的数据,用于长度超过100k的单元阵列。

谢谢!

1 个答案:

答案 0 :(得分:5)

setdiff应该适用于此。

[C, ia] = setdiff(A,B);

返回A中不在B中的数据(ia是索引向量),它适用于字符串的单元格数组。这是文档:

http://www.mathworks.com/help/matlab/ref/setdiff.html