Error using interp1
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Veerle Kohlen
am 7 Dez. 2020
Kommentiert: Star Strider
am 8 Dez. 2020
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.
1 Kommentar
Akzeptierte Antwort
Star Strider
am 7 Dez. 2020
Bearbeitet: Star Strider
am 7 Dez. 2020
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.
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interpolation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!