在MATLAB中,如何比较两行之间的差异
输入是具有多次出现的ID号的数据文件。e、 GID123现在我想要的是收集具有相同ID号的所有行,逐列比较,看看它们之间有什么不同 现在,在这之后,我将转到下一个多次出现的ID号,例如ID456,并执行相同的操作 我重复所有操作,直到完成多次出现的最后一个ID号 所以我的输出是这样的, 1列标题将相同。 2 ID列将具有唯一的条目。此列中仅包含多次出现的ID号。 3I将添加一个额外的列,其条目包含ID号出现的次数。例如,如果发生5次,则条目为5。在MATLAB中,如何比较两行之间的差异,matlab,comparison,row,Matlab,Comparison,Row,输入是具有多次出现的ID号的数据文件。e、 GID123现在我想要的是收集具有相同ID号的所有行,逐列比较,看看它们之间有什么不同 现在,在这之后,我将转到下一个多次出现的ID号,例如ID456,并执行相同的操作 我重复所有操作,直到完成多次出现的最后一个ID号 所以我的输出是这样的, 1列标题将相同。 2 ID列将具有唯一的条目。此列中仅包含多次出现的ID号。 3I将添加一个额外的列,其条目包含ID号出现的次数。例如,如果发生5次,则条目为5。 4对于其他列,如果该列对某个ID号的所有匹配项都
4对于其他列,如果该列对某个ID号的所有匹配项都具有相同的条目,则写入0,否则写入1。例如,如果对于ID123,列部分中的条目对于ID123的所有引用都是相同的,那么对于我们的输出表,列部分将包含值0。如果有任何差异,输出将为1您的问题不是很清楚,但我认为您需要计算唯一值的数量和唯一行出现的次数。下表可能会说明这一点
+-------+---------+-----+----------+---------------------+
| ID | Column1 | ... | Column n | num of occurrencies |
+-------+---------+-----+----------+---------------------+
这可以通过和来完成
在下面的示例中,A是原始数据,输出是所需的输出。输出的前n列是您的唯一数据,最后一列包含此行发生的次数。行[15]出现两次,[23]出现一次,以此类推
A = [1 5
1 5
2 3
2 4
3 9];
[k,~,idx]= unique(A,'rows');
n = accumarray(idx(:),1);
output = [k n]
output =
1 5 2
2 3 1
2 4 1
3 9 1