请教下gradient对一维向量进行什么运算呢
gradient函数对一维向量进行了什么运算操作呢?a=
a =
1 2 3 5 4 2
>> b=gradient(a)
b =
1.0000 1.0000 1.5000 0.5000 -1.5000 -2.0000
>>
上面是我随手输入的一个一维向量
得出为什么有1.5、0.5、-1.5之类的呢?
谢谢指教 楼主,你想表达什么意思啊 本帖最后由 lengyunfeng 于 2010-7-19 20:26 编辑
gradient表示的是梯度值,按理来说,它应该就是你给的数据的相邻点差比去二者的间距,所以按我们的理解应该是当a=时,gradient(a)返回的值应该是[1,1,2,1,-2](这里程序自动认为你的数据间距是1),但这样就有一个问题,你a是1*6的数据,而你的gradient(a)则是一个1*5数据,那么我们现在根本就不知道对于a(1,6)处的变化情况是多少。为了弥补这一问题,Matlab编程人员玩了个小游戏,对于a的首尾数据,它用的就是相邻值之差比去数据间距,比如gradient(a)的(1,1)、(1,6)数据就是(2-1)/1,(2-4)/1。而对于中间的其它数,它就采用间隔点之差除以2倍的间距,比如gradient(a)的(1,2)、(1,4)对应的就应该是(3-1)/2和(4-3)/2。不知道这样说你懂了没? 还是没搞懂
页:
[1]