Problem using interp1 with a sharp change in the data

6 ビュー (過去 30 日間)
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis 2019 年 11 月 18 日
Hello everyone.
I have a vector of data and I want to interpolate it using interp1. The problem is that there is a sharp increase in the values of the vector and the resulting graph does not reproduce the data propperly.
Is there a way to make the interpolated data reproduce the sharp jump propperly?
I will attach a figure where my issue is displayed.
Any answer is appreciated.
Thank you very much.
Jaime.
  5 件のコメント
Mil Shastri
Mil Shastri 2019 年 11 月 18 日
Thanks for clarification. What will also help is a clear description of what you want the output to look like.
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis 2019 年 11 月 18 日
The code I use is simply
Tinterp=interp1(time,T,t,'spline');
being T a vector which values can be seen in the attached T.txt; the same thing happens with time.
What I do next is plot together T-time and Tinterp and t as
figure
plot(t, Tinterp)
hold on
plot(time, T)
legend('interpolated','original')
title('T Spline')
I hope this clarifies what I am attempting to do.

サインインしてコメントする。

回答 (1 件)

Steven Lord
Steven Lord 2019 年 11 月 18 日
Try using ischange to detect these sharp changes in your data and interpolating using only data in the same "piece" of your curve (where pieces are delimited by the ends of your data sets and the change points) as the points for which you want the interpolated value.

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by