How to map Boolean functions

1 vue (au cours des 30 derniers jours)
lilly lord
lilly lord le 7 Mai 2021
hi I have elements from 0 to 15 in binary form named as tab1, f is the boolean function
s=[0,1,2,3,4,5,6,7,8,9,..15] %% binary values are stored in tab1
tab1 = [0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1 ; 0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1];
f = [0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0]';
%% I want to get the corresponding values of tab1 such as
% f(0 0 1 1) = 1 % this 1 is the 4th value in f
f(1 0 0 0) = 0 % this 0 is 8th place in f
  1 commentaire
KSSV
KSSV le 7 Mai 2021
Why and how?
f(0 0 1 1) = 1
f(1 0 0 0) = 0

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 7 Mai 2021
tab1 = [0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1 ; 0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1];
f = [0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0]';
f(ismember(tab1, [0 0 1 1], 'rows'))
ans = 1
f(ismember(tab1, [1 0 0 0], 'rows'))
ans = 0
Or just use binary
f([0 0 1 1; 1 0 0 0] * [8;4;2;1] + 1)
ans = 2×1
1 0
  3 commentaires
lilly lord
lilly lord le 7 Mai 2021
I have used this in my code
fx1=[];
for i=1:16
out1(i)=f(fx1(i,:) * [8;4;2;1] + 1);
out_1=xor(out1(i),f');
end
error
Unable to perform assignment because the left and right sides have a different number of elements.
can anyone guide me
Walter Roberson
Walter Roberson le 7 Mai 2021
You initialize fx1 as empty, so when you index it you get empty and empty cannot be assigned to non-empty

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by