how to use spline for a fig. file?
조회 수: 1 (최근 30일)
이전 댓글 표시
Can I use spline to smooth the plot in attached file?
댓글 수: 0
채택된 답변
Star Strider
2019년 7월 3일
편집: Star Strider
2019년 7월 3일
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
추가 답변 (1개)
Walter Roberson
2019년 7월 3일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Splines에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!