Arrays Matlab-如何比较单元格数组中的值?

Arrays Matlab-如何比较单元格数组中的值?,arrays,cell,Arrays,Cell,我在单元格数组中声明了一组输入和一个输出,如下所示: A = {'a', 'f', 'c', 'b'; 'b', 'f', 'c', 'a'; 'a', 'f', 'b', 'c'; 'c', 'f', 'b', 'a'; 'c', 'f', 'a', 'b'; 'b', 'f', 'a', 'c' } 其中,第一列为输出,其余为每个输出使用的输入 我需要比较这些值以减少计算时间。 所以,问题是,对于相等的输出,我想知道输入是否相同,这是一个重

我在单元格数组中声明了一组输入和一个输出,如下所示:

A = {'a', 'f', 'c', 'b';
     'b', 'f', 'c', 'a';
     'a', 'f', 'b', 'c';
     'c', 'f', 'b', 'a';
     'c', 'f', 'a', 'b';
     'b', 'f', 'a', 'c' }
其中,第一列为输出,其余为每个输出使用的输入

我需要比较这些值以减少计算时间。 所以,问题是,对于相等的输出,我想知道输入是否相同,这是一个重要的评论。。值的顺序不确定,因此,当比较f c b和f b c时,它是相同的

我需要这个,因为实际上,我的数据集是一个5040x7单元阵列,我需要将它们放入一个intorporation函数中

我是这样想的

如果输出列的值等于同一列的另一个值,请使用ismember函数检查输入值是否都相同。 但我无法找到一个有效的代码


有什么帮助吗?

首先,由于您不关心输入的顺序,我将对每一行进行排序:

[T, N] = size(A);
for t = 1:T
  Asorted(t,1)   = A(t,1);
  Asorted(t,2:N) = sort(A(t,2:N));
end
现在您要查找所有重复的行。一种简单的方法是首先转换为字符数组,然后使用
unique
函数--

现在
C
包含
B
的唯一行,
ii
包含唯一行的索引,
jj
根据其具有的唯一值标记
B
的每一行

如果您想从
A
中筛选出所有重复的行,现在可以这样做

Afiltered = A(ii, :);
这导致:

Afiltered = 
    'a'    'f'    'b'    'c'
    'b'    'f'    'a'    'c'
    'c'    'f'    'a'    'b'

你想要达到什么样的结果?你想删除所有重复的输入/输出对,还是只想要一个列表告诉你重复的位置?我想做的正是你所做的,非常感谢!!!
Afiltered = 
    'a'    'f'    'b'    'c'
    'b'    'f'    'a'    'c'
    'c'    'f'    'a'    'b'