how to use spline for a fig. file?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sajid Sarwar
le 3 Juil 2019
Commenté : Sajid Sarwar
le 3 Juil 2019
Can I use spline to smooth the plot in attached file?
0 commentaires
Réponse acceptée
Star Strider
le 3 Juil 2019
Modifié(e) : Star Strider
le 3 Juil 2019
Try this:
I = openfig('fft scma 25.fig');
Ax = gca;
lgnd = Ax.Legend;
Lines = findobj(Ax,'Type','line');
N = 5; % Interpolation Points Length Multiplication
for k = 1:numel(Lines)
X(k,:) = Lines(k).XData;
Y(k,:) = Lines(k).YData;
xq(k,:) = linspace(min(X(k,:)),max(X(k,:)), numel(X(k,:))*N); % Interpolation Points Vector
ys(k,:) = spline(X(k,:),Y(k,:),xq(k,:)); % Spline Fit To Data
end
figure
semilogy(xq', ys')
grid
legend(Ax.Legend.String)
xlabel(Ax.XLabel.String)
ylabel(Ax.YLabel.String)
Change ‘N’ to get the result you want.
EDIT —
Corrected typographical error. Code unchanged.
0 commentaires
Plus de réponses (1)
Walter Roberson
le 3 Juil 2019
Ninterp = 10;
Nplot = 100;
fig = openfig('fft scma 25.fig');
Lines6to1 = findobj(fig, 'type', 'line');
for idx = 1 : length(Lines6to1)
h = Lines6to1(idx);
xd = get(h, 'XData');
yd = get(h, 'YData');
x = linspace(min(xd), max(xd), Ninterp);
y = interp1(xd, yd, x, 'spline');
xx = linspace(min(xd), max(xd), Nplot);
yy = spline(x, y, xx);
set(h, 'XData', xx, 'YData', yy);
end
Voir également
Catégories
En savoir plus sur Splines dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!