Find value of x, from max y (graph)
    3 views (last 30 days)
  
       Show older comments
    
figure(2);
vel = diff(y)./diff(x);
plot(x(1:end-1), vel)
display(max(findpeaks(vel)))
x(max(findpeaks(vel)));
Trying to find the value of x corresponding to the maximum value of y, for this velocity vs time graph.
displays error due to logical or integer access.
0 Comments
Answers (2)
  Mischa Kim
    
      
 on 17 Oct 2014
        Andrew, check out
 x   = 0:0.1:6;
 y   = sin(x + 0.5);
 vel = diff(y)./diff(x);
 plot(x(1:end-1), vel,x(vel == max(vel)),max(vel),'dr')
0 Comments
  Michael Haderlein
      
 on 17 Oct 2014
        
      Edited: Michael Haderlein
      
 on 17 Oct 2014
  
      I'd actually prefer the following:
 ...
 vel = diff(y)./diff(x);
 [maxvel,ind]=max(vel);
 plot(x(1:end-1),vel,x(ind),maxvel,'or')
If you have a large number of velocities, this one here will be faster. For a small number, it just doesn't matter.
5 Comments
  Michael Haderlein
      
 on 17 Oct 2014
				What do you mean? You can, for instance, use the Data Cursor tool in the menu toolbar. Or you use the handles (plot_handles=get(gca,'children');) of the plots and then extract the x and the y data of the plots (x=get(plot_handles(1),'xdata');).
See Also
Categories
				Find more on 2-D and 3-D Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!