How to map decimal vector to look up table?

6 views (last 30 days)
Jyothi Alugolu
Jyothi Alugolu on 9 Feb 2017
Edited: Jan on 9 Feb 2017
Hello,
i have decimal vector of size <1x203 double> with values 244,255,245,0,239,217...Now i have to create a lookup table of size <256x9>,where 256 row size is to map every decimal element to corresponding index value of look up table.. if suppose if the value in decimal vector is 244, then there should be mapping between decimal vector value 244 to index value 244 of lookup table... and if any decimal value repeats, then there should be mapping to the same index value of lookup table . and column size 9 is for, 1st bit must be the index value and the remaining 8 bits is for random equal number of 0's and 1's... can anyone help me how to do this?
  3 Comments
Guillaume
Guillaume on 9 Feb 2017
Please give a short, concrete, example with numbers of inputs and desired output. Your explanation is far from clear.

Sign in to comment.

Answers (2)

Jan
Jan on 9 Feb 2017
Edited: Jan on 9 Feb 2017
Data = randi([0, 255], 1, 203); % Test data
LUT = [(0:255).', randi([0,1], 256, 8)];
Now the lookup table is used by simple indexing:
Result = LUT(Data, 4:7); % Get bits 3 to 6 from the binary data
Result = Result(:); % To get a 812x1 vector

Stephen
Stephen on 9 Feb 2017
In MATLAB the most efficient way to do this is to simply use indexing:
>> V = randi([0,255],1,203);
>> idx = V==244; % logical indices
>> find(idx) % subscript indices
ans =
34 55 87

Community Treasure Hunt

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

Start Hunting!