2016-03-25 8 views
0

Ich mache die Kursive Machine Learning Logistic Regression Zuweisung und ich schrieb das oberste Stück Code.Zulassen von Eingängen zu Matrix oder Vektoren oder Skalar in der Oktave

Anleitung

function g = sigmoid(z) 
%SIGMOID Compute sigmoid functoon 
% J = SIGMOID(z) computes the sigmoid of z. 

% You need to return the following variables correctly 
g = zeros(size(z)); 

% ====================== YOUR CODE HERE ====================== 
% Instructions: Compute the sigmoid of each value of z (z can be a matrix, 
%    vector or scalar). 



g = (1/(1 + exp(-1 * z))) .^ 1; 

%g = (1 + exp(-1 * z)) .^ -1; 
% ============================================================= 

end 

My-Code --- Breaks, wenn ein Vektor oder eine Matrix

g = (1/(1 + exp(-1 * z))) .^ 1; 

ich auf einige Github diesen Code gefunden Eingabe ---- Funktioniert für alle Fälle

g = (1 + exp(-1 * z)) .^ -1; 

Das Problem ist die Ausgabe funktioniert, wenn meine Eingabe ein Skalar ist. Mein Code bricht, wenn er ein Vektor wird. i kann wissen, was ich bin fehlt, wie es mir scheint das gleiche

Antwort

1

Sie / ändern müssen sein, die ein matrix right division ist sein ein element-wise division (./)

g = (1 ./ (1 + exp(-1 * z))) .^ 1; 

Die Verwendung von / funktioniert gut für Skalare Wenn jedoch einer der Eingänge eine Matrix ist (in diesem Fall die rechte Seite des Operators), the meaning changes, erhalten Sie entweder einen Fehler oder unerwartete Ergebnisse.