Matlab exp只适用于第一个元素?

时间:2016-09-14 15:02:45

标签: matlab exp elementwise-operations

我一直试图让一个简单的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'它说它是一个元素操作,所以我不确定我哪里出错了。任何帮助,将不胜感激。 :)

1 个答案:

答案 0 :(得分:1)

这里有一些问题。

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

  2. 您需要使用元素划分./而不是矩阵划分/

  3. 所以正确的功能是:

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