Filter löschen
Filter löschen

Delete duplicate data in matrix, based on a column

9 Ansichten (letzte 30 Tage)
Kasper Buchardt
Kasper Buchardt am 10 Nov. 2020
Kommentiert: Ameer Hamza am 11 Nov. 2020
I have multiple test data which is arranged in a matrix like 'A'. Column 1 = x-axis, column 2 = y-axis.
In order to interpolate I need to delete duplicate x-values. There is some insignificant variations in the corresponding y-values, hence it doesn't matter if it's the first or last that is kept.
Below is an example of the method i've tried. It deletes the rows where both columns are identical, but leaves the ones with different y-values
A = randi(5,10,2)
A = 10×2
4 3
3 1
5 2
4 1
5 2
3 3
2 3
1 3
4 5
4 3
B = unique(A,"rows","sorted")
B = 8×2
1 3
2 3
3 1
3 3
4 1
4 3
4 5
5 2
Is there a way to get matlab to use the first column for comparrison only, and delete the entire row?

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 10 Nov. 2020
Bearbeitet: Ameer Hamza am 10 Nov. 2020
If the difference in 2nd column values for the same first column value is insignificant, then you can try the following code
A = randi(5,10,2);
[~, idx] = unique(A(:,1));
A_unique = A(idx, :);
  2 Kommentare
Kasper Buchardt
Kasper Buchardt am 11 Nov. 2020
That did the trick. Thank you very much.
Ameer Hamza
Ameer Hamza am 11 Nov. 2020
I am glad to be of help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by