Converting symbolic boolean to MATLAB boolean

5 visualizzazioni (ultimi 30 giorni)
Hi,
I have a symbolic expression that can be evaluated to true / false, and I would like to get that result back to MATLAB.
This is what I have tried:
>> sym('1>0')
ans =
0 < 1
>> simplify(sym('1>0'))
ans =
TRUE
>> double(simplify(sym('1>0')))
??? Error using ==> eval
Undefined function or variable 'TRUE'.
Error in ==> sym.sym>sym.double at 937
X = eval(Xstr);
>> logical(simplify(sym('1>0')))
??? Error using ==> logical
Conversion to logical from sym is not possible.
>>
Thanks Joan
  2 Commenti
Oleg Komarov
Oleg Komarov il 27 Mag 2011
Is the simplify avoidable?
Joan Puig
Joan Puig il 27 Mag 2011
The reason why I use the simplify is so that I end up getting a TRUE/FALSE

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 27 Mag 2011
strcmp(char(sym('TRUE')),'TRUE')
  3 Commenti
Walter Roberson
Walter Roberson il 27 Mag 2011
piecewise() or _if() might be easiest. Neither of those appear to have MATLAB interfaces, though, so you might need to use evalin().
Joan Puig
Joan Puig il 27 Mag 2011
Actually, the _if trick will do, and also, it solves another problem I had
Thanks!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Symbolic Math Toolbox in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by