How to map Boolean functions

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

 Accepted Answer

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 Comments

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
You initialize fx1 as empty, so when you index it you get empty and empty cannot be assigned to non-empty

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!