Asked by Akbar
on 13 Jul 2018 at 13:55

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.

Answer by Walter Roberson
on 13 Jul 2018 at 18:05

Accepted Answer

You need to use piecewise() for this purpose.

Sign in to comment.

Answer by Adam Danz
on 13 Jul 2018 at 19:11

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 17 Jul 2018 at 7:42

Walter Roberson
on 17 Jul 2018 at 16:37

Sorry, I only answer public questions.

Akbar
on 18 Jul 2018 at 7:01

Ok. I have just solved my issue by substituting if else statement with tanh().

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 5 Comments

## Adam Danz (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/410246-need-help-with-symbolic-variables-if-else-statement#comment_589066

Your variable 'a' is probably a symbolic variable. To confirm,

What does a equal?

## Akbar (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/410246-need-help-with-symbolic-variables-if-else-statement#comment_589089

Yes a is symbolic

## Adam Danz (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/410246-need-help-with-symbolic-variables-if-else-statement#comment_589096

...and what is stored in a? what does a equal?

## Akbar (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/410246-need-help-with-symbolic-variables-if-else-statement#comment_589121

Just one number

## Adam Danz (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/410246-need-help-with-symbolic-variables-if-else-statement#comment_589125

Ok, see answers. If 'a' must be 'sym' Walter's answer is best. If 'a' can be converted to 'double', see my answer.

Sign in to comment.