【问题标题】:Extract the gradient from the deriv command从 deriv 命令中提取梯度
【发布时间】:2010-10-27 14:37:23
【问题描述】:

前几天一位同事问我以下问题。在下面这段代码中,如何提取渐变:

> x=5
> a = eval(deriv(~ x^3, "x"))
> a
[1] 125
attr(,"gradient")
      x
[1,] 75

我的回答是

>  attr(a, "gradient")[1]
[1] 75

这种语法对我来说似乎很笨拙。有没有更好的方法来提取梯度?

【问题讨论】:

    标签: r gradient


    【解决方案1】:

    不确定这些算不算更好,但是:

    with(attributes(a), gradient)
    

    attributes(a)$gradient
    

    是将属性作为列表返回以供选择的替代方法。

    【讨论】:

      【解决方案2】:

      虽然它并不比你的方法好,但你可以创建一个函数grad,它接受一个带有渐变属性的数字并返回渐变值。

      grad = function(x)attr(x,"gradient")[1]
      
      grad(a)
      

      现在可以重复使用了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-28
        • 1970-01-01
        • 2017-03-20
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2016-04-13
        相关资源
        最近更新 更多