2016-04-12 21 views
0

Ich habe 2 boolean Gleichungen:Wie löst man ein xor-System von booleschen Gleichungen?

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

> F_A1=~I5+~(I3*I4) 

Und ich würde XOR zwischen ihnen zu machen, aber das ist, was ich bekommen:

>> xor(F, F_A1) 

ans = 

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

Wo ist der Fehler?

+0

Sie erhalten also einen symbolischen Ausdruck als Ergebnis, benötigen Sie stattdessen ein boolesches Ergebnis (z. B. wahr oder falsch)? Können Sie zeigen, wie Sie die Variablen in Ihrem Ausdruck definiert oder erhalten haben? – Cyb3rFly3r

+0

>> syms I1 I2 I3 I4 I5 I6. Was ich will, ist die resultierende Gleichung –

Antwort

0

Sie haben die symbolischen Variablen deklariert und dann einige Berechnungen durchgeführt. Da den Variablen kein Wert zugewiesen ist, gibt die symbolische Toolbox einfach den Ausdruck zurück (was das richtige Verhalten ist). Sie müssen Werte für die Variablen ersetzen, um ein numerisches (in Ihrem Fall boolesches) Ergebnis zu erhalten. Verwenden Sie die Funktion subs. In Ihrem Fall möchten Sie mehrere Ersetzungen. Vielleicht möchten Sie auch Ihr Ergebnis vereinfachen. Aus Ihren Fragen geht nicht klar hervor, wonach genau Sie suchen. Wenn Sie nur eine numerische Antwort wollen, brauchen Sie nicht die symbolischen Variablen, sondern nur normale boolesche Variablen.

+0

Ich möchte nur Matlab lösen diese XOR-Gleichung, ich möchte den Ausdruck abhängig von den Variablen I1, I2, I3 haben ... –

+0

Es ist nicht klar, was meinst du mit lösen: wenn Sie Lösen Sie eine Gleichung, die Sie normalerweise für eine bestimmte Variable zu lösen versuchen, z x + 2 = 0, gelöst für x, ergibt x = - 2. MATLAB kann die Gleichung nicht lösen, weil keiner der Variablen einen Wert zugewiesen hat. In der Tat ist das ein Ausdruck, keine Gleichung (es gibt kein 'etwas'). Vielleicht möchten Sie, dass Matlab diesen Ausdruck vereinfacht? – Cyb3rFly3r

+0

zum Beispiel: A XOR B => (A * ~ B) + (~ A * B). Wie kann ich diese Operation in Matlab durchführen? wenn ich xor schreiben (a, b) schauen, was ich bekommen: >> xor (a, b) ans = a xor b –

Verwandte Themen