2

我想问如何绘制三次样条插值的派生函数?我在我的代码中展示了我是如何做到的。错误是:

使用绘图时出错 第二个数据参数无效 function_MTU4000_Real 中的错误(第 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/°]')
4

1 回答 1

1

fnder返回一个结构,而不是一个用于绘图的数组。您必须使用ppvalfnval评估它...

plot1 = plot(x1, ppval(Speed1,x1))

文件:

https://lost-contact.mit.edu/afs/cs.stanford.edu/pkg/matlab-r2015b/matlab/r2015b/help/curvefit/examples/cubic-spline-interpolation.html

使用csapi参见文档: https ://uk.mathworks.com/help/curvefit/csapi.html

% docs example
bcs = csapi( {x,y}, z ); 
fnplt( bcs )
于 2017-01-31T09:02:06.827 回答