Interpolate/Resample to a specific decimal point

11 ビュー (過去 30 日間)
Anmol Jarang
Anmol Jarang 2021 年 9 月 21 日
コメント済み: Anmol Jarang 2021 年 9 月 21 日
I've got a cell array with different values in each array, sampled at different points. These points are random. I'm currently trying to figure out a way to resample+interpolate them in such a way that I can average over each cell row in the cell array. for example,
x{2}=[1 3 4 7 6 3 6]
should become
x{2}=[1 2 3 4 5 6 7 6 5 4 3 4 5 6]
I've looked into functions like interp1 and resample, but these assume that you have a vector of points you want to get or the target number of samples. I know neither. The ideal function would be something that takes in the intial vector(x{2}) and the desired sampling interval (1). How can I go about solving this problem?
  2 件のコメント
Matt J
Matt J 2021 年 9 月 21 日
編集済み: Matt J 2021 年 9 月 21 日
Suppose your sampling interval was 1, but your initial vector was
x=[1 3.17 4 7.8 6 3 6]
What result would you expect?
Or, what if your input vector was still
x=[1 3 4 7 6 3 6]
but your sampling interval was 1.6? What result would you expect then?
Anmol Jarang
Anmol Jarang 2021 年 9 月 21 日
I should've added this in the post, but my data will always have the same number of digits after the decimal point. For the first one, I would have 2 digits after the decimal point, so my sampling interval would be .01, and I'd have a vector that would be [1 1.01 1.02 .... 3.17 3.18....].

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

採用された回答

Stephen23
Stephen23 2021 年 9 月 21 日
Assuming no adjacent duplicate values:
S = 1;
V = [1,3,4,7,6,3,6];
X = cumsum([1,abs(diff(V))]);
Z = interp1(X,V,1:S:X(end))
Z = 1×14
1 2 3 4 5 6 7 6 5 4 3 4 5 6

その他の回答 (1 件)

Mathieu NOE
Mathieu NOE 2021 年 9 月 21 日
hello
try this :
x=[1 3 4 7 6 3 6];
out = my_resample(x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function out = my_resample(x)
out = [];
for ci = 2:length(x)
delta = sign(x(ci) - x(ci-1));
tmp = x(ci-1):delta:x(ci);
out = [out tmp(1:end-1)];
end
out = [out x(end)]; % include last value
end
it gives :
out = 1 2 3 4 5 6 7 6 5 4 3 4 5 6

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by