Find the highest value of y for each x value
    5 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件)
  Image Analyst
      
      
 2019 年 4 月 27 日
        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 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Spline Postprocessing についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


