Find the highest value of y for each x value
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Can anyone please help me with this quesiton. I have a big matrix where I’m only interested to plot the highest value of y for each x value. My x-axis ranges between 0 and 45 and I want the highest values for each one. So, I created the following code but I’m not happy with it. I also attached my data. Thank you for your time.
x = MaT_All(:,18);
y = MaT_All(:,17)
edges = 200; % I used a number as 200 since I could not find the indexs of 0:45 in the original data (x)
Group = discretizediscretize(x ,edges); %
Result_y = accumarray(Group, y , [], @max); % I got the highest values (y) but not sure how to find the corresponding value in x
scatter(Result_x ,Result_y) % how can i find Result_x
I also tried this code
[G,TID] = findgroups(x);
Max_NPV = splitapply(@max,y),G);
scatter(TID,Max_NPV);
1 Kommentar
Antworten (1)
Image Analyst
am 27 Apr. 2019
How about (untested):
ux = unique(x)
hold on;
for k = 1 : length(ux) % For each unique x...
% Find the max y for this x value.
maxY = max(y == ux(k));
% Plot that point.
plot(ux(k), maxY, 'b.', 'MarkerSize', 10);
end
grid on;
1 Kommentar
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!