How to get the x, y data after using smoothing spline in Matlab?

7 views (last 30 days)
I have tried the below code to get the x,y data after using smoothing spline. I am still confused with
h = findobj(gca,'Type','line');
x=get(h,'Xdata');
y=get(h,'Ydata');
Is it all the x y data obtained after smoothing ? I feel very less data is showing in x, y.Please let me know where I am going wrong? Here is my code..
%Load the x-axis data
filename1 = 'Time.xlsx';
Time = xlsread(filename1);
%Load the y-axis data
filename2 = 'X.xlsx';
X= xlsread(filename2);
%Performing smoothing spline
% Time and X are input data
[f,gof,out] = fit( Time, X, 'smoothingspline');
% Plot fit with data.
figure( 'Name', 'TimeVsX' );
h=plot(f,'fit');
legend(h,'After Smoothing', 'Location', 'NorthEast', 'Interpreter', 'none' );
% Label the axes
xlabel( 'Time', 'Interpreter', 'none' );
ylabel( 'X', 'Interpreter', 'none' );
grid on
h = findobj(gca,'Type','line');
x=get(h,'Xdata');
y=get(h,'Ydata');

Answers (1)

KSSV
KSSV on 27 Oct 2021
%Load the x-axis data
filename1 = 'Time.xlsx';
Time = xlsread(filename1);
%Load the y-axis data
filename2 = 'X.xlsx';
X= xlsread(filename2);
%Performing smoothing spline
% Time and X are input data
[f,gof,out] = fit( Time, X, 'smoothingspline');
% get smoothed values
X_smooth = f(Time)
  5 Comments
KSSV
KSSV on 27 Oct 2021
n = 500 ;
Time_i = linspace(min(Time),max(Time),n);
X_smooth = f(Time_i)
Aarach Sap
Aarach Sap on 28 Oct 2021
I am still not getting. I just want the points or data after smoothing. I can fix the range from app also but i am not getting the values from apps, only can generate code. According to above my code, the values can be obtained by
X_smooth = f(Time)
Y_smooth = f(X) ???? plz let me know

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!