MATLAB: Conditional entry-wise matrix operation

loopmatrix

Hi, I am trying to compute the matrix 'Y' as follows with matrix 'X' as an input.
If X_ij > 0
then Y_ij = X_ij + log(exp(-X_ij)+1)
else Y_ij = log(1+exp(X_ij))
How do I implement this without any loops? Thanks.

Best Answer

Hints:
What does the expression -abs(X) do in relation to your condition of X_ij > 0? Could you use this in your formula for the calculation of Y?
Or, what if you created a logical indexing variable for your condition, such as g = X > 0. Can you think of how to use g as an index to calculating the appropriate elements of Y?
Related Question