# Need help with symbolic variables (if else statement)

7 views (last 30 days)
Akbar on 13 Jul 2018
Edited: Akbar on 18 Jul 2018
if a > 10^-8
switch1 = b;
else
switch1 = 0;
end
i get the following error:
Conversion to logical from sym is not possible.
at line:
if a > 10^-8
I Need the above code to work with symbolic variables.
Adam Danz on 13 Jul 2018
Edited: Adam Danz on 13 Jul 2018
Ok, see answers. If 'a' must be 'sym' Walter's answer is best. If 'a' can be converted to 'double', see my answer.

Walter Roberson on 13 Jul 2018
You need to use piecewise() for this purpose.

Adam Danz on 13 Jul 2018
According to your comments, 'a' is a symbol symbolizing a scalar number. If that's the case, you can convert 'a' to numerical.
a = sym('3.14159');
a = double(a); % Convert to double
if a > 10^-8
...
else
...
end
If you prefer to keep 'a' in the sym class, use Walter's answer.
Akbar on 18 Jul 2018
Edited: Akbar on 18 Jul 2018
Ok. I have just solved my issue by substituting if else statement with tanh().

### Categories

Find more on Common Operations in Help Center and File Exchange

R2017b

### Community Treasure Hunt

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

Start Hunting!

Translated by