MATLAB Answers

Akbar
0

Need help with symbolic variables (if else statement)

Asked by Akbar
on 13 Jul 2018
Latest activity Edited by 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.

  5 Comments

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

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.

Products


Release

R2017b

2 Answers

Answer by Walter Roberson
on 13 Jul 2018
 Accepted Answer

You need to use piecewise() for this purpose.

  0 Comments

Sign in to comment.


Answer by 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.

  10 Comments

Thank you very much Walter for trying to help out. I dont want to share files on public. I can send to your email if you provide it.

Sorry, I only answer public questions.

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

Sign in to comment.