In VBA I can do the following:
A = B + IIF(C>0, C, 0)
so that if C>0 I get A=B+C
and C<=0 I get A=B
Is there an operator or function that will let me do these conditionals inline in MATLAB code?
For both if and switch , MATLAB®executes the code corresponding to the first true condition, and then exits the code block. Each conditional statement requires the end keyword.
if expression , statements , end evaluates an expression, and executes a group of statements when the expression is true. An expression is true when its result is nonempty and contains only nonzero elements (logical or real numeric). Otherwise, the expression is false. The elseif and else blocks are optional.
How about simply using the fact that MATLAB automatically converts variable types when required by the operation? E.g., logical to double.
If your variables are scalar double, your code, I believe, can be replaced by
a = b + (c > 0) * c;
In this case, the operator (c > 0)
values 1
(logical type) whenever c > 0
and values to 0
otherwise.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With