Info

この質問は閉じられています。 編集または回答するには再度開いてください。

False result why applying interp1 function!

2 ビュー (過去 30 日間)
inti
inti 2014 年 7 月 18 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Hi to all,
I have data taken at non-regular intervals, and I'd like to interpolate the data to have values every 100ms.
if
17:43:08.437 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.477 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.497 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.516 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.537 > ATT_HandleValueNotification: status=0 h=45 n=3 09 C7 17
17:43:08.577 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
end
My code is :
if s=data(:,3)+data(:,4)/1000; % convert to seconds+fractions
t = datenum(2014,07,18,data(:,1),data(:,2),s)*86400;
t = t - t(1);
sample = interp1(t,res(:,1:3), 0:0.01:t(end)); % i fixed a time to 100ms to obtain estimated data in this time
// end
Thanks in advance
end
  5 件のコメント
the cyclist
the cyclist 2014 年 7 月 18 日
編集済み: the cyclist 2014 年 7 月 18 日
@inti,
By far the best thing you can do to help us solve your problem is to give us a small piece of functioning MATLAB code (including the part that defines the data) that illustrates the problem. Otherwise, we spend far too much time guessing.
inti
inti 2014 年 7 月 18 日
Thanks for your reply.
I have irregular time series data: (time (h:m:s:ms), X-acceleration, Y-acceleration, Z-acceleration)in hexadecimal
Portion of my log file
if 17:43:08.437 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.477 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.497 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.516 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.537 > ATT_HandleValueNotification: status=0 h=45 n=3 09 C7 17
end
The first column is for a Time and the three last columns are for acceleration's data (x,y,z).
My goal here is to interpolate irregular Time series to regular time series and i like to obtain acceleration's data every 0.01 seconds.
After converting acceleration's data from hexadecimal to acceleration's g , i obtain this table
if 0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,140625000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
end
And this a portion of a table sample after applying interp1 function :
if
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,110866306584362 -0,890625000000000 0,359375000000000
0,125746056832695 -0,890625000000000 0,359375000000000
0,140624576267240 -0,890625000000000 0,359375000000000
0,132812426778048 -0,890625000000000 0,359375000000000
0,125000277288855 -0,890625000000000 0,359375000000000
0,117188127799663 -0,890625000000000 0,359375000000000
0,109375978310470 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
end
i think that i have a duplicate values

回答 (0 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by