2017-02-15 5 views
2

Logical circuitprogramme Matlab pour calculate sorties de circuit logique

je devais calculer chaque sortie sur ce circuit logique, et je n'ai pas une expérience avec électronique. Donc, j'ai cherché la signification des symboles et j'ai construit mon programme sur Matlab.

Quelqu'un peut regarder et m'aider si je l'ai fait mal ou pointant une meilleure façon de faire?

Voici mon code Matlab:

for A = 0 : 1 
    for B = 0 : 1 
    for C = 0 : 1 
     for D = 0 : 1 
      if A ~= B 
       E = 1; 
      else 
       E = 0; 
      end 

      if B == 0 
       F = 1; 
      else 
       F = 0; 
      end 

      if C == 0 
       G = 1; 
      else 
       G = 0; 
      end 

      if E == 1 && F == 1 && C == 1 
       H = 1; 
      else 
       H = 0; 
      end 

      if G == 1 || D == 1 
       I = 0; 
      else 
       I = 1; 
      end 

      if H == 1 && I == 1 
       Y = 0; 
      else 
       Y = 1; 
      end 

      disp(['Se A=' num2str(A) ', B=' num2str(B) ', C=' num2str(C) ' e D=' num2str(D) ' => Y=' num2str(Y)]); 
     end 
    end 
    end 
end 

Répondre

2

Votre code produira les bons résultats, mais vous pouvez utiliser MATLAB's built-in functions pour algèbre booléenne.

for A = 0 : 1 
    for B = 0 : 1 
    for C = 0 : 1 
     for D = 0 : 1 
     Y = ~((xor(A,B) & ~B & C) & ~(~C | D)); 
     disp(['Se A=' num2str(A) ', B=' num2str(B) ', C=' num2str(C) ' e D=' num2str(D) ' => Y=' num2str(Y)]); 
     end 
    end 
    end 
end