Separate the digits in a hex number

I want to use the digits from hex numbers as indices to a lookup table. Eg: if the number is A9, A corresponds to the row of the lookup table and 9 corresponds to the column, so that I can pick up the value of the cell at the intersection of this row and column.
How can I separate 'A' and '9' in hex?

 Accepted Answer

>> sscanf('A9', '%1x')
ans =
10
9

3 Comments

Thank you...how can I read these into separate variables? Eg: 10 should be stored in r and 9 in c...
rc = sscanf('A9', '%1x');
r = rc(1);
c = rc(2);
Thank you, so much!

Sign in to comment.

More Answers (1)

John D'Errico
John D'Errico on 18 Feb 2017
Edited: John D'Errico on 18 Feb 2017
If you want the digits as an index into a table, then since indexing is 1-based in MATLAB, you want 'A' to map to 11, '9' maps to 10, '0' to 1, etc.
This will do:
H = 'F5A9';
[~,ind] = ismember(H,'0123456789ABCDEF')
ind =
16 6 11 10

Community Treasure Hunt

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

Start Hunting!