Arrays matlab计数行在矩阵中包含相同的元素

Arrays matlab计数行在矩阵中包含相同的元素,arrays,matlab,matrix,count,row,Arrays,Matlab,Matrix,Count,Row,我有这样一个矩阵: A = [1 2 3 3 4 5 6 8 7 7 9 11 12 13 15 17 18 19 ]; 如何计算包含相同元素的行数?在这种情况下,结果是4:第1行和第2行包含3;第3行和第4行包含7。 谢谢你 A = [1 2 3 3 4 5 6 8 7 7 9 11 12 13 15 17 18 19 ] B = unique(A) L

我有这样一个矩阵:

A = [1   2   3
     3   4   5
     6   8   7
     7   9   11
     12  13  15
     17  18  19
];
如何计算包含相同元素的行数?在这种情况下,结果是4:第1行和第2行包含3;第3行和第4行包含7。 谢谢你

A = [1   2   3
 3   4   5
 6   8   7
 7   9   11
 12  13  15
 17  18  19
]
B = unique(A)
L = length(B)
Z = []
R = 0
for t=1:L
  [C,D] = ismember(A,B(t))
  SS = sum(sum(D))
  if(SS>1)
     Z(end+1) = B(t)
     R = R + nnz(sum(D,2))
  end
end
在此结束时,向量Z将包含所有重复的值 R将给出重复行的总数

这项工作做得相当粗略。但是只要稍加努力,您就可以通过某种方式消除循环来改进代码

希望能有帮助

在此结束时,向量Z将包含所有重复的值 R将给出重复行的总数

这项工作做得相当粗略。但是只要稍加努力,您就可以通过某种方式消除循环来改进代码


希望它有助于一个解决方案,不是真正的优化,但如果你的矩阵不是那么大,它会工作得很好

A = [1   2   3;
     3   4   5;
     6   8   7;
     7   9   11;
     12  13  15;
     17  18  19];

for ii = 1:size(A,1)
    B = A;
    B(ii,:) = [];
    ind(ii,:) = sum(ismember(unique(A(ii,:)),unique(B)))>0; %check if there is a common value for the row ii.
end

nbrrow = sum(ind) %number of row that contain a similar value.

一个解决方案,不是真正优化的,但如果矩阵不是那么大,它会很好地工作

A = [1   2   3;
     3   4   5;
     6   8   7;
     7   9   11;
     12  13  15;
     17  18  19];

for ii = 1:size(A,1)
    B = A;
    B(ii,:) = [];
    ind(ii,:) = sum(ismember(unique(A(ii,:)),unique(B)))>0; %check if there is a common value for the row ii.
end

nbrrow = sum(ind) %number of row that contain a similar value.

以下是一种快速方法,对于重复超过2行(但不在同一行)的值也很有效:


以下是一种快速方法,对于重复超过2行(但不在同一行)的值也很有效:


不,我的条件不允许这样做..如果你不能像你说的那样在一行上有重复项,并且每一行只能在另一行上有重复值:
2*(numel(a)-numel(unique(a))
?不,我的条件不允许那样..如果你不能像你说的那样在一行上有重复项,并且每一行只能与另一行有重复的值:
2*(numel(A)-numel(unique(A))
?嘿,凤凰城小建议:当您使用
sum(sum(2Dmatrix))
时,您也可以使用
sum(2Dmatrix(:)
。这是一种更通用的方法,可以沿所有维度对矩阵求和。@obchardon非常感谢!我从来没想过那个把戏。这将使我未来的代码稍微好一点!特别是当你不确定矩阵的维数时,凤凰城小建议:当你使用
sum(sum(2Dmatrix))
时,你也可以使用
sum(2Dmatrix(:)
。这是一种更通用的方法,可以沿所有维度对矩阵求和。@obchardon非常感谢!我从来没想过那个把戏。这将使我未来的代码稍微好一点!尤其是当你不确定矩阵的维数时