Expanding Matrix with Integers (between decimal numbers)

1 次查看(过去 30 天)
Hi I have two vector one is time the other one is velocity. Because of GPS logging freq.I am having decimal numbers. Also when the car stops the gps stop logging. So I want to add integers to time matrix, and will ad corresponding interpreted velocities to the velocity matrix.
Like:
T=[ 39.01; 41 ;43.13;45; 47.02] V=[19.47;9;11.84;13.35;11.70]
So I should have the new T
T_new=[ 39.01; 40; 41 ; 42;43.13; 44;45; 46; 47.02]
V_new=[ 19.47; interp_new_val;9; interp_new_val,11.84; interp_new_val;13.35; interp_new_val;11.70]
And the nest one after this,
How can I form for example 5hz time-veloicty data from this data? Starting from zero.
Kind Regards

采纳的回答

Guillaume
Guillaume 2017-9-21
编辑:Guillaume 2017-9-21
"But how to create T_new?"
An option:
T_integer = round(T);
T_new = union(setdiff(min(T_integer):max(T_integer), T_integer), T)
  1 个评论
Orkun OZENER
Orkun OZENER 2017-9-21
Thank you very much...These two function i really new for me..I spent 10 minutes for undertstanding...But it really works..GREAT..
Lastly.....If the time difference of original matrix is ie. more than 4 second...the veloicty should be zero... The GPS is stopping... Actually ..enlarging and if conditional at the same time I am really mixed..and exhausting..:)

请先登录,再进行评论。

更多回答(1 个)

Jos (10584)
Jos (10584) 2017-9-21
Almost there, use the function interp1:
T = [ 39.01; 41 ;43.13;45; 47.02]
V = [19.47;9;11.84;13.35;11.70]
T_new=[ 39.01; 40; 41 ; 42;43.13; 44;45; 46; 47.02]
V_new = interp1(T, V, T_new)

类别

Help CenterFile Exchange 中查找有关 Multirate and Multistage Filters 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by