Matlab 如何求解布尔方程的异或系统?

Matlab 如何求解布尔方程的异或系统?,matlab,Matlab,我有两个布尔方程: > F=~I5+I1*I2*I3*I4 > F_A1=~I5+~(I3*I4) 我想在它们之间做XOR,但我得到的是: >> xor(F, F_A1) ans = (~I5) + I1*I2*I3*I4 xor (~I5) + (~I3*I4) 错误在哪里?您声明了符号变量,然后执行了一些计算。由于变量没有任何赋值,符号工具箱只是返回表达式(这是正确的行为)。必须用值替换变量,才能得到数值结果(在本例中为布尔值)。使用该函数。 在你的情况下

我有两个布尔方程:

> F=~I5+I1*I2*I3*I4 

> F_A1=~I5+~(I3*I4)
我想在它们之间做XOR,但我得到的是:

>> xor(F, F_A1)

ans =

(~I5) + I1*I2*I3*I4 xor (~I5) + (~I3*I4)

错误在哪里?

您声明了符号变量,然后执行了一些计算。由于变量没有任何赋值,符号工具箱只是返回表达式(这是正确的行为)。必须用值替换变量,才能得到数值结果(在本例中为布尔值)。使用该函数。
在你的情况下,你需要多次替换。您可能也想简化您的结果。你的问题并不清楚你到底在寻找什么。如果您只需要一个数字答案,您不需要符号变量,只需要常规布尔变量即可。

因此,您得到的结果是一个符号表达式,您是否需要一个布尔结果(例如true或false)?您能说明如何定义或获取表达式中的变量吗?>>syms I1 I2 I3 I4 I5 I6。我想要的是结果方程我只想要Matlab来解那个XOR方程,我想要表达式取决于变量I1,I2,I3…不清楚解是什么意思:当你解一个方程时,你通常试图解一个特定的变量,例如x+2=0,解x,得到x=-2。MATLAB无法求解该方程,因为所有变量都没有赋值。事实上,这是一个表达式,而不是一个方程(不存在“=某物”)。也许您希望matlab简化该表达式?例如:A XOR B=>(A*~B)+(~A*B)。如何在matlab中进行该操作?如果我写xor(a,b)看看我得到了什么:>>xor(a,b)ans=a xor-bA计算机代数系统(CAS)无法猜测我们人类更喜欢的表达式的形式是什么。有时是最短的表达式,有时是扩展版本。你需要明确地说出来。在这种情况下,内部表示只是保留xor运算符,因为它会导致表达式的最短形式(这很好,因为它更容易用于后续计算)。还有一个
expand
函数,尽管我从未在布尔变量上尝试过。你可以试试,我明白了。有可能得到这个表达式的真值表吗?