データのリサンプリングについて

10 ビュー (過去 30 日間)
健気 大川
健気 大川 2021 年 10 月 21 日
コメント済み: 健気 大川 2021 年 10 月 22 日
等間隔ではないデータのリサンプリングを行いたいです。例えば、下記のようなデータ(20個)を13個のデータにするにはどうしたらよいでしょうか。どなたか助言をお願いいたします。(今回は20から13ですが任意の数行いたいです)
71
71.66035
72.64257
73.40705
74.29461
75.0875
75.84253
76.76797
77.58928
78.50525
79.26976
80.09108
80.884
81.64853
82.46986
83.29119
83.92319
84.71614
85.38601
86
  1 件のコメント
健気 大川
健気 大川 2021 年 10 月 21 日
リサンプリング後も最初(71)と最後(86)は固定したいです

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

採用された回答

Shunichi Kusano
Shunichi Kusano 2021 年 10 月 21 日
編集済み: Shunichi Kusano 2021 年 10 月 21 日
そのような不等間隔なxに対して何らか測定値yがある、ということでしょうか?
そういう状況の場合、interp1関数をお使いください。サンプリング点はlinspace関数で作ることができます。
% 参考
% x <= 不等間隔なサンプリング点
% y <= xでの計測値
yq = interp1(x,y,linspace(x(1),x(end),13)); % 内挿
  3 件のコメント
Shunichi Kusano
Shunichi Kusano 2021 年 10 月 22 日
詳細補足いただきありがとうございます。理解できました。
このケースでもやはりinterp1関数で大丈夫です。
x = 1:20;
y = [71
71.66035
72.64257
73.40705
74.29461
75.0875
75.84253
76.76797
77.58928
78.50525
79.26976
80.09108
80.884
81.64853
82.46986
83.29119
83.92319
84.71614
85.38601
86];
xq = linspace(1,20,13); % オリジナルデータの範囲で13点をリサンプル
yq = interp1(x,y,xq);
figure;
plot(x,y,'b-o',xq,yq,'rx');
内挿方法は選べるようになってるので、目的に応じて選んでください。
健気 大川
健気 大川 2021 年 10 月 22 日
お忙しい中詳しく教えて頂きありがとうございました。無事解決いたしました。

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!