MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Willam Willam on 29 Dec 2012

Hi. I want ask how I need to convert the data that I read from text file and put it in the single the form of 8 bits per each array. Thanks for help. Appreciate.

Answer by Image Analyst on 29 Dec 2012

Is this what you mean:

array8bit = uint8(doubleArray);

Answer by Walter Roberson on 30 Dec 2012

Putting your data into different arrays is not advised. Please read http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F

To convert your values, use

bin2dec(A,8)

This will return a character array, one row for each input value, with each character being '0' or '1'. These will *not* be the numbers 0 and 1. If you want the numbers 0 and 1 instead of the characters '0' and '1', then use

bin2dec(A,8) - '0'

The result would be a number of rows, each 8 columns wide, with one row per input number.

If you were hoping that (for example) the input value 5 would convert to the *decimal* number 00000101, then although the conversion to decimal-coded-binary could be done, keep in mind that decimal values automatically drop leading 0's on output, so such an entry would print out as 101 rather than 00000101.

Show 24 older comments

Willam Willam on 1 Jan 2013

Ok. I will try it when I'm free. Because prepare for final exam. Thanks ya Sir Walter

Willam Willam on 9 Jan 2013

Sir walter, i tested already. It works but only for 1st array only. How to make it all arrays are recorded through this code? Thanks

## 4 Comments

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/57619#comment_119703

Is the data already read from the file, or do you need code for that too? Have you tried dlmread(), csvread(), importdata(), or textscan()?

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/57619#comment_119717

Sir, I used fread() function previously. Is that this function cant used?

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/57619#comment_119721

fread() is for binary files, not for converting text.

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/57619#comment_119725

From Image Analyst comment, I had use importdata() function and manage get my data in the form of A=[50 20]. But how I need to convert it into A=[11111111 11111111] and separate it into two arrays like A1=[11111111] A2=[11111111].