Scatter data interpolation of a column matrix

1 view (last 30 days)
say I have two matrix
throttle =[ 1 2 3 4 5] ;
torque =[ 10 20 30 40 50
12 24 32 41 55
15 25 34 42 54
16 27 35 46 53
14 22 36 42 52
15 24 32 44 51] ;
I want to get throttle values at some specific torque position.
say the torque position points are [10.5;20.4;30.5;40.2;22.4;51.9]
How to do this with interpolation function, i am facing error during running the code
1.jpg
  3 Comments
Debanjan Maity
Debanjan Maity on 30 Jan 2019
Is it a problem if torque data contains NaN.
Debanjan Maity
Debanjan Maity on 30 Jan 2019
The code is following:
throttle= [0 2.5 5 10 15 20 30 40 50 60 65 70 75 80 90 100];
torque=yi;
torquei= rpm_new(:,4);
throttlei = zeros(3622,1) ;
for i = 1:3622
throttlei(i,:) = interp1(torque(i,:),throttle,torquei(i,:)) ;
end
The error is like following:
Error using griddedInterpolant
The grid vectors must contain unique points.
Error in interp1 (line 161)
F = griddedInterpolant(X,V,method);
Error in test_sch_shifting_map (line 64)
throttlei(i,:) = interp1(torque(i,:),throttle,torquei(i,:)) ;
I am also attaching the excel files.

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 30 Jan 2019
Edited: Andrei Bobrov on 30 Jan 2019
T = readtable('torque.xlsx','ReadV',0);
torquei = xlsread('torquei.xlsx');
throttle= [0 2.5 5 10 15 20 30 40 50 60 65 70 75 80 90 100];
T = T{:,:};
d = diff(T,1,2);
ad = cumsum(eps(1e3)*~[d,zeros(size(T,1),1)],2);
Tw = T + ad;
out = cellfun(@(x,y)interp1(x,throttle(:),y),num2cell(Tw',1),num2cell(torquei'));
  2 Comments
Debanjan Maity
Debanjan Maity on 30 Jan 2019
Showing error
Undefined function or variable 'd'.
Error in Untitled (line 5)
ad = cumsum(eps(1e3)*~[d,zeros(size(T,1),1)],2);

Sign in to comment.

More Answers (0)

Categories

Find more on Chassis Systems in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!