Reputation: 27
I want to ask how I can plot the derived function of cubic spline interpolation? I show how I did it in my code. The error was:
Error using plot Invalid second data argument Error in function_MTU4000_Real (line 90) plot1=plot(x1,Speed1,'b');
%calculation of lifting of intake valve (approximation spline function)
x1=0.0:0.1:202.1;
y1=xlsread('Steuerzeiten_Schrittweite_MTU4000.xlsx',1,'D2:D2023');
Lifting1=spline(x1,y1);
x2=202.1:0.1:701.9;
Lifting2=0*x2;
x3=702.0:0.1:720.0;
y3=xlsread('Steuerzeiten_Schrittweite_MTU4000.xlsx',1,'D7022:D7202');
Lifting3=spline(x3,y3);
%calculation and plot of speed intake
figure(2);hold on; grid on;
Speed1=fnder(Lifting1);
plot1=plot(x1,Speed1,'b');
Speed2=Lifting2;
plot2=plot(x2,Speed2,'b');
Speed3=fnder(Lifting3);
plot3=plot(x3,Speed3,'b');
hold off
legend([plot1,plot2,plot3],'Intake')
set(gca,'XTickLabel',{'OT','90','UT','270','ZOT','450','UT','630','OT'});
title('Intake Valve Speed')
xlabel('Crank Angle [°]')
ylabel('Speed [m/°]')
Upvotes: 2
Views: 630
Reputation: 30047
fnder
returns a struct, not an array for plotting. You must use ppval
or fnval
to evaluate it...
plot1 = plot(x1, ppval(Speed1,x1))
Docs:
For using csapi
see docs:
https://uk.mathworks.com/help/curvefit/csapi.html
% docs example
bcs = csapi( {x,y}, z );
fnplt( bcs )
Upvotes: 1