Octave 复杂的逐元素操作

Mic*_*key -1 matlab octave

有没有办法在一行中编写“复杂”的元素操作,或者我们是否必须将它们分成多行?

例如,让我们有这个数学函数: 1/(1+e^-x) 我想为 x 上的每个元素计算它(x 可以是标量、向量或矩阵)。

这是我编写的工作代码:

function r = sigmoid(x)
    r = zeros(size(x));
    r = e.^(-x);
    r = 1.+r;
    r = 1./r;
end
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 我们可以将其简化为一行吗?

Dav*_*our 6

是的,您可以通过以下功能来完成

function r=sigmoid(x)
r=1./(1+exp(-x))
end
Run Code Online (Sandbox Code Playgroud)

这首先考虑 exp 函数计算指数值明智的元素并加一,最后结果在矩阵元素上除以 1,你可以得到你想要的。