MATLAB: Extract Plot Values from Sine Wave

dataextractplotsine wave

I'm looking for some general ideas / suggestions about my current problem. I need to write some functions that will extract interesting data points (min,max, p-p,etc) from a plotted sine wave. The wave has not been created yet. A coworker will create the equations that will generate this wave at a later date, so I don't know if he will be plotting an actual sine wave, or if he will have points that will become a wave form. So I cannot simply take values from a single equation. I hope that makes sense so far. Basically, I'm doing the post-processing work on his plot so that when he creates the equations and plots, the whole program will run, and my functions will appropriately extract the information needed. Does anyone have any suggestions on a stable way to extract interesting information as mentioned from a currently unknown plot? Or to even extract ALL values in defined timesteps?
It seems that there are so many ways to do something like this, so I'm hoping for some guidance to know which paths might be better than others. I will be creating test plots while doing this, but I cannot be sure of the end outcome, except that they will be sine waves.

Best Answer

  • You have to extract the entire data series from a plot. If you have the plot open in your workspace, the easiest way is to use the appropriate handle graphics calls:
    xd = get(gca, 'XData');
    yd = get(gca, 'YData');
    and then analyse ‘xd’ and ‘yd’ as you wish.