Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 删除数组中的字符串元素(Matlab)_String_Matlab_Cell Array - Fatal编程技术网

String 删除数组中的字符串元素(Matlab)

String 删除数组中的字符串元素(Matlab),string,matlab,cell-array,String,Matlab,Cell Array,我有一个字符串:pairs=['AA';'AB';'BB';'AC';'CC';'CB';'DE';'BC'] 如何删除字符串中具有相同字符(如“AA”、“BB”、“CC”)的元素 预期的输出应该是:out=['AB';'AC';'CB';'DE';'BC']使用逻辑索引并比较第一列和第二列: out = pairs(pairs(:,1)~=pairs(:,2),:) 对于更一般的方法(覆盖两个以上字符的行),可以使用bsxfun创建所有元素彼此相等的行索引: allsame = any(~b

我有一个字符串:
pairs=['AA';'AB';'BB';'AC';'CC';'CB';'DE';'BC']

如何删除字符串中具有相同字符(如“AA”、“BB”、“CC”)的元素


预期的输出应该是:
out=['AB';'AC';'CB';'DE';'BC']
使用逻辑索引并比较第一列和第二列:

out = pairs(pairs(:,1)~=pairs(:,2),:)
对于更一般的方法(覆盖两个以上字符的行),可以使用bsxfun创建所有元素彼此相等的行索引:

allsame = any(~bsxfun(@eq, pairs, pairs(:,1)), 2);
out = pairs(allsame,:);

使用逻辑索引并比较第一列和第二列:

out = pairs(pairs(:,1)~=pairs(:,2),:)
对于更一般的方法(覆盖两个以上字符的行),可以使用bsxfun创建所有元素彼此相等的行索引:

allsame = any(~bsxfun(@eq, pairs, pairs(:,1)), 2);
out = pairs(allsame,:);

如果所有条目只有2个元素,则可以减去每个元素,如果结果为0,则两个元素相同

例如:

pairs = {'AA';'AB';'BB';'AC'; 'CC'; 'CB';'DE'; 'BC'}

Diffs = cellfun(@(x) diff(x),pairs)
diff
如下所示:

Diffs =

     0
     1
     0
     2
     0
    -1
     1
     1
现在删除这些条目:

pairs(~Diffs) = []

pairs = 

    'AB'
    'AC'
    'CB'
    'DE'
    'BC'

如果所有条目只有2个元素,则可以减去每个元素,如果结果为0,则两个元素相同

例如:

pairs = {'AA';'AB';'BB';'AC'; 'CC'; 'CB';'DE'; 'BC'}

Diffs = cellfun(@(x) diff(x),pairs)
diff
如下所示:

Diffs =

     0
     1
     0
     2
     0
    -1
     1
     1
现在删除这些条目:

pairs(~Diffs) = []

pairs = 

    'AB'
    'AC'
    'CB'
    'DE'
    'BC'

但是请注意,问题将
对作为字符串数组。您可以简单地将字符串数组转换为单元格数组,如
pairs=cellstr(pairs)请注意,问题中有
作为字符串数组。您可以简单地将字符串数组转换为单元格数组,如
pairs=cellstr(pairs)