filter parameters using if else

11 visualizzazioni (ultimi 30 giorni)
Federico Caruso
Federico Caruso il 20 Lug 2016
Commentato: Federico Caruso il 20 Lug 2016
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

Risposta accettata

Thorsten
Thorsten il 20 Lug 2016
Modificato: Thorsten il 20 Lug 2016
[a, ~, c] = unique(B(:,1));
Bnew = [a arrayfun(@(x) max(B(c==x,2)), 1:numel(a))']

Più risposte (0)

Categorie

Scopri di più su Performance and Memory in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by