How do you use the "interp1" command?

2 ビュー (過去 30 日間)
Diego Portillo
Diego Portillo 2020 年 11 月 15 日
コメント済み: KSSV 2020 年 11 月 16 日
I am working on this code and for some reason i cant sure out why im getting a error. plss lmk if you
N = 128
delta_x = 2/N
x = [0:2/N:1, 1:-2/N:0]
y_int_top = interp1 (x_c, y_top, x(1, 1:65) )
y_int_bot = interp1 (x_c, y_bot, x(1, 66:130))
y_t = [y_int_top, y_int_bot]
% for i=1:N
% x(i) = x(i-1)+delta_x
%
% theta_top(i) = atan2d((y_top(i+1)-y_top(i)),((x(i+1)-x(i))));
% theta_bot(i) = atan2d((y_bot(i+1)-y_bot(i)),((x(i+1)-x(i))));
% end
  4 件のコメント
KSSV
KSSV 2020 年 11 月 15 日
What is size of x_c, y_top? Theys hould be vectors.
Diego Portillo
Diego Portillo 2020 年 11 月 15 日
they are a tables i think. I am not very proficient with Matlab so i am not sure if they already are in vector form

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

回答 (1 件)

KSSV
KSSV 2020 年 11 月 15 日
Try:
y_int_top = interp1 (x_c.(1), y_top.(1), x(1, 1:65) ) ;
y_int_bot = interp1 (x_c.(1), y_bot.(1), x(1, 66:130)) ;
  2 件のコメント
Diego Portillo
Diego Portillo 2020 年 11 月 15 日
it now gives me a different error, idk if this one is related to the data?
```Error using matlab.internal.math.interp1
Sample points must be unique and sorted in ascending order.
Error in interp1 (line 188)
VqLite = matlab.internal.math.interp1(X,V,method,method,Xqcol);
Error in compassignment (line 5)
y_int_top = interp1 (x_c.(1), y_top.(1), x(1, 1:64) ) ;```
KSSV
KSSV 2020 年 11 月 16 日
Try spline instead of interp1.
N = 128
delta_x = 2/N
x = [0:2/N:1, 1:-2/N:0]
y_int_top = spline(x_c, y_top, x(1, 1:65) )
y_int_bot = spline (x_c, y_bot, x(1, 66:130))
y_t = [y_int_top, y_int_bot]

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

カテゴリ

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