找回密码
 注册
Simdroid-非首页
查看: 91|回复: 3

请教下gradient对一维向量进行什么运算呢

[复制链接]
发表于 2010-3-31 20:33:37 | 显示全部楼层 |阅读模式 来自 四川成都
gradient函数对一维向量进行了什么运算操作呢?
a=[1 2 3 5 4 2]
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之类的呢?
谢谢指教
发表于 2010-7-18 16:40:05 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
楼主,你想表达什么意思啊
回复 不支持

使用道具 举报

发表于 2010-7-19 19:45:51 | 显示全部楼层 来自 四川成都
本帖最后由 lengyunfeng 于 2010-7-19 20:26 编辑

gradient表示的是梯度值,按理来说,它应该就是你给的数据的相邻点差比去二者的间距,所以按我们的理解应该是当a=[1 2 3 5 4 2]时,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。不知道这样说你懂了没?

评分

2

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-10-29 08:47:59 | 显示全部楼层 来自 湖北武汉
还是没搞懂

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 11:18 , Processed in 0.034065 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表