Error using interp1
1 次查看(过去 30 天)
显示 更早的评论
Hi all,
I'm trying to interpolate my data set using interp1.
My data set looks something like:
tympanic.nw1.Time =
'10:04:48'
'10:04:49'
'10:04:50'
'10:04:51'
'10:04:52'
'10:04:53'
tympanic.nw1.Temperature =
35.3000000000000
35.3000000000000
35.4000000000000
35.4000000000000
35.4000000000000
35.3000000000000
35.3000000000000
I used the following code:
% Tympanic Temp
t1 = tympanic.nw1.Time(1,1); t2 = tympanic.nw1.Time(end,1); t = t1:seconds(1):t2; t = t.';
tympanic.nw1.Temperature = interp1(tympanic.nw1.Time, tympanic.nw1.Temperature, t);
tympanic.nw1.Time = t;
Matlab gives the following error: Error using griddedInterpolant. Sample points must be unique and sorted in ascending order. Can someone explain me how to solve this problem? I already tried using the function unique, but that didn't solve my problem.
采纳的回答
Star Strider
2020-12-7
编辑:Star Strider
2020-12-7
Veerle Kohlen —
You likely need to put your data into a timetable array, then use the retime function. That would likely be the easiest way to do it.
Example —
tympanic.nw1.Time = ['10:04:48'
'10:04:49'
'10:04:50'
'10:04:51'
'10:04:52'
'10:04:53'];
tympanic.nw1.Temperature = [35.3000000000000
35.3000000000000
35.4000000000000
35.4000000000000
35.4000000000000
35.3000000000000];
T1 = table(tympanic.nw1.Time, tympanic.nw1.Temperature);
T1.Var1 = datetime(T1.Var1, 'InputFormat','HH:mm:ss', 'Format','HH:mm:ss');
TT1 = table2timetable(T1);
TT1rt = retime(TT1, 'secondly','TimeStep',1);
EDIT — (7 Dec 2020 at 16:36)
Added the example.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!