Matlab interp1 function x-points for given y-points

9 Ansichten (letzte 30 Tage)
Marathon_Mike
Marathon_Mike am 8 Okt. 2020
Kommentiert: Ameer Hamza am 12 Okt. 2020
Dear Community Members,
Hopefully this finds you safe and well. Using interp1 to acquire x-points for given y-points does not seem to work. Data in this particular instance generated via a function however in reality it is experimental data.
%**main function
x=[3:0.1:6];
y=sin(x);
%***y-array for new x-values
y_array = [-0.9:0.005:0.1];
x_new = interp1(y,x,y_array);
figure
plot(x,y,'k+-',x_new,y_array,'rx-')
grid on
Resutant image see attachment.
Any help on how to extrapolate between current and next data opints would be appreciated.

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 8 Okt. 2020
Inverting nonlinear function using interp1() like this is not correct. Check the following code
%**main function
x=[3:0.1:6];
y=sin(x);
%***y-array for new x-values
y_array = -0.9:0.005:0.1;
interp_x = @(xq) interp1(x, y, xq);
x_new = fsolve(@(xq) interp_x(xq) - y_array, 3+rand(size(y_array)));
figure
plot(x,y,'k+-',x_new,y_array,'rx-')
grid on
  4 Kommentare
Marathon_Mike
Marathon_Mike am 11 Okt. 2020
Dear Ameer,
Thank you once again for all your help. In the end decided to write a script to trim the data as I realised I did not need the second part of the curve to reach my ultimate solution. This is effectively cheating by turning the non-linear function into a linear one (only one data point for a given y-value).
Thanks,
Mike
Ameer Hamza
Ameer Hamza am 12 Okt. 2020
I am glad to be of help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Object Properties finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by