2017-08-16 59 views
-1

有沒有辦法在一行中寫'複雜'元素操作,還是我們必須將它們分成多行?例如,讓我們有這個數學函數:1 /(1 + e^-x) 我想爲x(x可能是一個標量,向量或矩陣)上的每個元素計算哪個數據函數。八度複雜元素操作

這是一個工作的代碼,我已經寫了:

function r = sigmoid(x) 
    r = zeros(size(x)); 
    r = e.^(-x); 
    r = 1.+r; 
    r = 1./r; 
end 

我的問題是 - 它可以簡化我們對一條線?

+1

你不只是*嘗試*在一行嗎? – Wolfie

回答

3

是的,你可以做到以下功能

function r=sigmoid(x) 
r=1./(1+exp(-x)) 
end 

這首先要考慮的是,EXP函數計算指數值明智的元素,並通過一個補充,最後結果在矩陣元素方式劃分1,你可以得到你想要的想。

+0

謝謝。因爲只有一個'。'足以將所有動作聲明爲「元素明智的」,或者因爲exp(-x)已經被定義爲元素明智的?如果第二個是真的,那麼1 + exp(-x)是如何工作的,而不是1 + exp(-x)?再次感謝 – Mickey

+0

@Mickey'+'總是元素,沒有'。+'。你可以在那裏有多個表達式,比如'1 ./(1 + exp(-x。* x))'。 – Steve

+0

@Steve是的,你是對的。所以如果不是'''我會'''我應該把它寫成'。*'?因此,總結 - 主要的變化,所以我可以適應函數一行是使用'exp()'而不是'^'?謝謝! – Mickey