将 1 个字符串与带索引的字符串元胞数组进行比较 (Matlab)

Compare 1 string with a cell array of strings with indexes (Matlab)

我有 1 个字符串和 1 个字符串元胞数组:

  F = 'ABCD'
  R = {'ACBD','CDAB','CABD'};

我想将字符串 F 与 R 中的所有字符串进行如下比较:F(1)='A' 和 R{1}(1)='A',我们将计数 1(因为它们具有相同的值 'A'),F(2)='B' 和 R{1}(2)='C' 我们将计数 0(因为它们具有不同的值)...这样直到所有字符串结束。

对于这个 'ABCD' 和 'ACBD',我们将得到 same = 2dif = 2

如何在上述规则中将 F 与 R 中的所有元素进行比较,并得到总计(相同)和总计(差)?

假设 R 中的所有字符串与 F 的长度相同,您可以使用 cellfun:

same = cellfun( @(r) sum(F==r), R )

结果

2     0     1

R 中每个字符串的 same 值。如果你想要 dif:

dif = numel(F)-same;

如果你想要总数:

tot_same = sum(same);
tot_dif = sum(dif);