hello, i have x axle table and y axle table, when i set value within the range of x, how to get the output from y, may be some interpolation and curve smoothing should used. i hope it works in m script.

댓글 수: 8

hello
sure , you can use interpolation (with interp1 ) or you can also fit a polynomial with polyfit
wenchao zhang
wenchao zhang 2024년 7월 5일
편집: wenchao zhang 2024년 7월 5일
hi,Mathieu, if i just want use simple smooting method,not consider polynominal,how to do
The interp1 function has several method options, depending on what you want to do.
For example:
xi = 90;
yi = interp1(x, y, xi, 'linear')
yi = interp1(x, y, xi, 'pchip')
To find a value of ‘x’ that corresponds to a specific value of ‘y’, simply reverse the arguments:
yi = 90;
xi = interp1(y, x, yi, 'linear')
xi = interp1(y, x, yi, 'pchip')
Fortunately, ‘y’ appears to be a monotonically increasing function of ‘x’. If that were not the situation, it would be necessary to determine the approximate indices of the ‘x’ values where ‘y’ crossed a specific value, and then interpolate in each region in a for loop.
.
if you can , share yur data and we can show you some options (if you are unsure how to proceed)
ok, i wiil share data later.
extreploation need consider, if input x is out of range
xi = interp1(y, x, yi, 'linear', 'extrap')
yes,you are right.

댓글을 달려면 로그인하십시오.

 채택된 답변

wenchao zhang
wenchao zhang 2024년 7월 5일
편집: Walter Roberson 2024년 7월 5일
use interp1 seems ok,
x = 0:pi/4:2*pi;
v = sin(x);
xq = 0:pi/16:2*pi;
figure
vq2 = interp1(x,v,xq,'spline');
plot(x,v,'o',xq,vq2,':.');
xlim([0 2*pi]);
title('Spline Interpolation');

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Smoothing에 대해 자세히 알아보기

제품

릴리스

R2018b

질문:

2024년 7월 5일

댓글:

2024년 7월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by