比较单元阵列的内容与向量

时间:2016-09-12 22:46:13

标签: arrays matlab cell-array

我有以下1 x 3单元格数组:

Y = {[2 3 4 5 8],[1 2 5 7 8],[3 4 7 8]}

和以下1乘8的载体:

X = [1 2 3 4 5 6 7 8]

使用逻辑索引的形式,我想比较矢量与单元格数组的每个内容。例如,将X与Y(1,1)进行比较将得到以下结果:

[0 1 1 1 1 0 0 1]

同样,将XY(1,2)进行比较会得到以下结果:

[1 1 0 0 1 0 1 1]

XY(1,3)进行比较会得到以下结果:

[0 0 1 1 0 0 1 1]

因此,我应该有以下输出:

[0 1 1 1 1 0 0 1
 1 1 0 0 1 0 1 1
 0 0 1 1 0 0 1 1]

感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:3)

使用cellfunismember应用于每个小区的内容:

result = cellfun(@(c) ismember(X, c), Y, 'UniformOutput', false); % gives cell array
result = vertcat(result{:}); % vertically concatenate cells' contents into a matrix