functions to combine two hexadecimal numbers

I'm doing a project that involves taking in data from an EMG, running it through a function in Matlab, and sending commands to a series of motors. The motors take a series of 2 hex numbers, one 2 digits, one 4 digits preceded by the letter d. For example, d0103FF. My question is, how can I write a series of functions that takes the difference between two numbers, converts it to a zero padded four digit hexadecimal, and then tacks it onto the end of dXX where X is another number.

2 Comments

can you give an example about the I/O? If the format is regular, my approach would be to treat d0103FF as a string and read it digit by digit
An EMG signal is going to be processed and classified as a number. This number determines which set of functions to use. The output is d followed by a zero-padded 2 digit hex number followed by a zero padded 4 digit hex number. In order to determine the four digit number,the current motor rotation is subtracted from the desired rotation. This number is turned into hex with dec2hex. I need to figure out how to take the number calculated and insert it after the d and two hex digits.

Sign in to comment.

 Accepted Answer

y = desired - actual;
h2 = dec2hex(x,2);
h4 = dec2hex(y,4);
out = [ 'd' h2 h4 ];

More Answers (2)

SPRINTF('%x') and the corresponding FPRINTF commands are very fast for the conversion of hexadecimal and decimal numbers - mucgh faster than HEX2DEC and DEC2HEX:
out = sprintf('d%.2x%.4x', x, y)

Categories

Community Treasure Hunt

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

Start Hunting!