Extract data from matlab default plots

I have this code that plots the response of a structure to an excitation signal. MATLAB has two functions that do the work, as you may see in my code that I am using those function (modalfrf and modalfit). I want to extract the data in those plots and re-plot them against other variables. My question is "How can I extract the x-axis and y-axis data from those default plots?"
I have attached my code along with two .mat files that are needed to run the code.
Fs = 4000
modalfrf(ex_signal(1:1024) ,ACC,Fs,1000);
[frf,fff] = modalfrf(ex_signal(1:1024),ACC,Fs,1000);
modalfit(frf,fff,Fs,15,'FitMethod','lsrf');

4 Comments

Why do you need to extract them from the plot when you still have the original data?
If you did, I believe you can ask the axes for the xdata and ydata properties.
MATLAB functions process the data, the output of (modalfrf and modalfit) is different from the input. I need to extract the output of those functions. I tried findobj but it didn't work.
Did you try
ax = gca;
xdata = ax.XData;
or something like that?
Yes, I tried it but I got an error that says
"No appropriate method, property, or field 'XData' for class 'matlab.graphics.axis.Axes'."

Sign in to comment.

 Accepted Answer

Call it with as many outputs as you need, then use the outputs in your subsequent calculations:
[frf,f,coh] = modalfrf(___)
You can also plot the outputs, or call modalfit separately without outputs to do the plot you want.

More Answers (0)

Categories

Find more on Specifying Target for Graphics Output 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!