Perform this operation on a scalar/vector or matrix

2 views (last 30 days)
I have a code like this
The function takes z as argument. z can be a scalar or vector or matrix
IF it is a vector, I want the operation stated to be performed on every element of a vector, if its a matrix I want the operation to be performed on every element of a matrix and if its a scalar on the scalar
It is not working. See below
1) If I give z as scalar 0. I get 0.5 which is correct
2) If I give z as 0.5, I get 0.6225 which is correct
3) I give as z as [0;0;0.5], I expect the answer to be 0.5 0.5 0.6225 but it doesn't work
function g = sigmoid(z)
%SIGMOID Compute sigmoid function
% g = SIGMOID(z) computes the sigmoid of z.
% You need to return the following variables correctly
g = zeros(size(z));
g = (1/(1+exp(-z)));

Accepted Answer

Stephan
Stephan on 26 Mar 2019
Edited: Stephan on 26 Mar 2019
g = (1./(1+exp(-z)));
% ^
% |______ perform elementwise
  2 Comments
atan
atan on 27 Mar 2019
Thanks !
This works:
g = (1./(1+exp(-z)));
I know that "." does the magic to perfoirm the element wise operation. I'm still unsure on where exactly one should insert that "."
Thanks !

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!