Need help with symbolic variables (if else statement)

3 ビュー (過去 30 日間)
Akbar
Akbar 2018 年 7 月 13 日
編集済み: Akbar 2018 年 7 月 18 日
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 件のコメント
Akbar
Akbar 2018 年 7 月 13 日
Just one number
Adam Danz
Adam Danz 2018 年 7 月 13 日
編集済み: Adam Danz 2018 年 7 月 13 日
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
Walter Roberson 2018 年 7 月 13 日
You need to use piecewise() for this purpose.

その他の回答 (1 件)

Adam Danz
Adam Danz 2018 年 7 月 13 日
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 件のコメント
Walter Roberson
Walter Roberson 2018 年 7 月 17 日
Sorry, I only answer public questions.
Akbar
Akbar 2018 年 7 月 18 日
編集済み: Akbar 2018 年 7 月 18 日
Ok. I have just solved my issue by substituting if else statement with tanh().

サインインしてコメントする。

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by