diff gives back one less valor
28 次查看(过去 30 天)
显示 更早的评论
So I have this set of data, it's humidity vs time when drying food. I need the speed of drying so what do I do? I use cftool to find best fit of data then I tag the fit and export to workspace.
I have:
time=[1;2;3;4;5;6] x=[0.5;0.4;0.3;0.25;0.22;0.18]
I use cftool to fit it and export to worskpace
Then i use;
Rc=diff(finame(time))
Rc stands for speed in water removal (drying) and it gives back a vector with only 5 numbers, when it should give me a vector with 6 elements, each one the result of the derivate for each time...yet, as i said it doesn't... why is this?
Thanks a lot for the answers.
0 个评论
采纳的回答
Sean de Wolski
2013-10-4
编辑:Sean de Wolski
2013-10-4
If X is a vector of length m, then Y = diff(X) returns a vector of length m-1. The elements of Y are the differences between adjacent elements of X.
Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]
Thus it does the backward differences requiring one element shorter. IF you want the vector to be the same length, pad it with a 0.
There's also this file that might interest you:
3 个评论
Sean de Wolski
2013-10-4
@Thomas, padding the results with a zero would not alter the results, just shift them.
更多回答(1 个)
Thomas
2013-10-4
It cannot give 6 elements since it calculates differences between successive elements and for 6 input values there are only differences e.g. assuming time=1:6 you have
INPUT : x=[ a b c d e f] (count 6) OUTPUT: differences used are b-a, c-b, d-c, e-d, f-e (count 5)
If you really need 6 values you could extrapolate your data boundaries and use a central differencing scheme.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Descriptive Statistics and Visualization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!