2012-04-22 36 views
2

我有一些我想绘制的测量数据。我只绘制点,并用Curve Fitting工具箱生成我绘制的回归函数。计算测量数据的正切值

现在我想计算和绘制某一点上的切线。我如何使用Matlab来做到这一点?

回答

2

如果点和功能,可以计算出切线是:

让的说所需的索引是5表达式y = mx + N

m = (diff(y) ./ diff(y)) (5) 
n = y(5)-x(5)*m 

然后

hold on 

plot (x, (m*x+n));

链接:

http://www.kxcad.net/cae_MATLAB/toolbox/curvefit/bqxox7w.html http://www.weizmann.ac.il/matlab/toolbox/curvefit/cfit.html http://www.mathworks.com/matlabcentral/newsreader/view_thread/170100

+0

是的,如果我有要点的话。假设我有10个数据点。我使用'Curve Fitting'工具箱完成了插值并得到了一个'cfit'对象。如何获得数据点下的插值? – Razer 2012-04-22 20:26:11

+0

@Razer添加链接告诉我,如果它帮助你,如果不是,我会写你的代码 – 0x90 2012-04-22 20:30:53

+2

我只是发现自己的功能feval()。我会尽力而为。 – Razer 2012-04-22 20:37:21

1

随着@帮助的0x90我得到了解决:

zerocross = ceil(fzero(fit, 1000)); 
x_tan = zerocross-101:0.1:zerocross+100; 
y_tan = feval(fit, x_tan); 

k = (diff(y_tan) ./ diff(x_tan)); 
k = k(length(k)/2); % get zero point 
d = y_tan(5)-x_tan(5)*k; 

plot (x_tan, (k*x_tan+d)); 
+0

+1。 – 0x90 2012-04-23 04:14:41