Problem in interpolation of data.

1 回表示 (過去 30 日間)
Daniyal Ali
Daniyal Ali 2015 年 10 月 13 日
コメント済み: Walter Roberson 2015 年 10 月 13 日
The following code is giving me the error that "The grid vectors do not define a grid of points that match the given values". I tried to use linear and other methods too, but nothing works. Need help.
a=unique(Eo.signals.values(:,:));
b=unique(SOC.signals.values(:,:));
b1 = interp1(a,b,19,'spline','extrap')

採用された回答

Walter Roberson
Walter Roberson 2015 年 10 月 13 日
What reason do you have for expecting that the number of unique values of one kind matches the number of unique values of the other kind, and that they should happen to be sorted in the same order?
are you sure you want to extrapolate at 19 exactly? That reads more like a number for the number of extrapolated values you would want.
I wonder if maybe you are looking for something closer to a cubic spline fit of the data?
  2 件のコメント
Daniyal Ali
Daniyal Ali 2015 年 10 月 13 日
My a ranges from 25 to 17 having values like 24.9 24.8 in between also. My b ranges from 1 t0 0 having values like 0.01 0.02 etc. Both a and b depend on each other and there is a certain value of a corresponding to a certain value of b.
What i want is to get the value of b, by entering any value of a between the range of values shown. That's why i am using the interpolation method.
Walter Roberson
Walter Roberson 2015 年 10 月 13 日
Use the three output form of unique() to produce A and ia and ic (third output). Use ic to index the second array to get the values corresponding to each A value. Then the two will be the same length and in correspondence.

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

その他の回答 (0 件)

カテゴリ

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