我有一个m×1矩阵A
。我想找出哪些元素是重复的并获取其行值。 (因为矩阵是m乘1,所以只需设置行值即可。)
我试过了
k = find(~unique(A));
但是k包含错误的值。
这是我正在尝试做的一个例子。考虑数组A;
A = [4
5
5
5
7
8
4];
由于4和5是此处的重复元素,因此我想获取这些元素的行值并将其放入新数组中。结果数组将是
RowValues= [1
2
3
4
7];
注意:以上仅是示例,我要处理的实际数组在
A
数组中包含-0.0038、1.3438等类型的有理数。 最佳答案
这是使用 intersect
的解决方案:
s = sort(A);
c = intersect(s(1:2:end),s(2:2:end));
RowValues = find(ismember(A,c));
我使用@SardarUsama提出的方法将compared与octt中输入的大
[1 x 10000000]
一起使用。结果如下:=======INTERSECT==========
Elapsed time is 1.94979 seconds.
=======ACCUMARRAY==========
Elapsed time is 2.5205 seconds.
关于matlab - 如何在矩阵中找到重复的值以及它们属于哪些行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50422299/