【问题标题】:Matlab exp only works on the first element?Matlab exp 仅适用于第一个元素?
【发布时间】:2016-09-14 15:02:45
【问题描述】:

我一直试图让一个简单的 sigmoid 函数在 matlab 中工作,它似乎只适用于矩阵的第一个元素。

我的代码是:

function g = sigmoid(z)
    g = zeros(size(z));
    g = 1/(1 + exp(-z));
end

现在它适用于简单的值,例如:

>>sigmoid(0)
ans = 0.5000

但对于: `

>>k = [0; 0; 0; 0; 0];
>>sigmoid(k)`

它给了我:

ans = 0.5000 0 0 0 0

查看“exp”,它说它是一个元素操作,所以我不确定我哪里出错了。任何帮助,将不胜感激。 :)

【问题讨论】:

    标签: matlab exp elementwise-operations


    【解决方案1】:

    这里有几个问题。

    1. 您无需预先分配g,只需在下一行重新分配即可。

    2. 您需要使用逐元素除法./ 而不是矩阵除法/

    所以正确的函数应该是:

    function g = sigmoid(z)
        g = 1 ./ (1 + exp(-z));
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-07
      • 2013-01-11
      • 2011-08-25
      • 2012-06-12
      • 1970-01-01
      • 2021-12-08
      • 2021-12-04
      • 1970-01-01
      相关资源
      最近更新 更多