MATLAB: Filter parameters using if else

if else filtering values

Hi guys I have this problem. I have a .txt file which is 208000 rows and 2 columns. The 1st column represent the x-axis and the second is the y-axis, as you can see there are multiple y values for the same x. I would like that my script would select only one value of x and the maximum y value for that x. I am trying to do this using if else but I fail somewhere because it doesn't delete the worst values. This is my script:
clc
clear all
Y1 = importdata('Y_nitro_stke_neqwf.txt');
B = sortrows(Y1);
[n,m] = size(B);
new = zeros(size(B));
new(1,1) = B(1,1);
new(1,2) = B(1,2);
for i = 2:n
if B(i,1) > new(i-1,1)
new(i,1) = B(i,1);
new(i,2) = B(i,2);
elseif B(i,1)== new(i-1,1)
new(i-1,2) = B(i,2);
new(i,1) = B(i,1);
new(i,2) = B(i,2);
end
end
Thanks a lot if you can help me

Best Answer

[a, ~, c] = unique(B(:,1));
Bnew = [a arrayfun(@(x) max(B(c==x,2)), 1:numel(a))']