Matlab simplify boolean expression

I want to simplify a boolean algebra expression. I have taken this example from matlab online help but it does not work:
simplify((a and b) or (a and (not b)), logic)
Any suggestion?
I am using matlab R2012a (7.14.0.739)

回答 (3 件)

Geoff
Geoff 2012 年 5 月 27 日

1 投票

The expression:
(A && B) || (A && ~B)
Is logically equivalent to:
A
The reason is that both terms require A to be true, and the whole expression evaluates to true regardless of whether B is true or false. If you drew up a truth table for this, it'd be immediately obvious.
[EDIT] Hadn't clicked that the poster was talking about the symbolic math toolbox.
syms a,b;
simplify( (a & b) | (a & ~b) )

3 件のコメント

Oleg Komarov
Oleg Komarov 2012 年 5 月 28 日
I confirm that the code in the comment works.
Please post it here so that the OP can accept your answer.
Geoff
Geoff 2012 年 5 月 28 日
Cheers.. I should stop answering outside my area of experience. =)
Oleg Komarov
Oleg Komarov 2012 年 5 月 28 日
But that's how you learn new things!

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

Alexander
Alexander 2012 年 5 月 29 日

1 投票

You have copied a MuPAD command. Did you use it inside a MuPAD Notebook? If not, type this at the MATLAB command prompt:
mupad
This will open a MuPAD Notebook. There, paste the input near the bracket (red text should appear) and press enter:
[ simplify((a and b) or (a and (not b)), logic)
a
If you don't want to open a MuPAD notebook, try this in MATLAB:
evalin(symengine, 'simplify((a and b) or (a and (not b)), logic)')
Though if you prefer to stay in MATLAB, you should take what Geoff suggests:
syms a b;
simplify((a & b) | (a & ~b))
(For some reason it did not work for me with the comma between a and b).

2 件のコメント

ket
ket 2012 年 5 月 29 日
Very comprehensive answer. Thanks!
Ibrahim Elewah
Ibrahim Elewah 2022 年 6 月 26 日
Thank You @Alexander

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

ket
ket 2012 年 5 月 27 日

0 投票

Ok, but how do use matlab to simplify a boolean expression? Also, it there a method where I can see the intermediate steps?

1 件のコメント

Geoff
Geoff 2012 年 5 月 28 日
I don't have the symbolic math toolbox.. Does this work?
syms a,b;
simplify( (a & b) | (a & ~b) )

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

質問済み:

ket
2012 年 5 月 27 日

コメント済み:

2022 年 6 月 26 日

Community Treasure Hunt

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

Start Hunting!

Translated by