Split binary number into individual bytes

8 views (last 30 days)
Hello,
I want to convert a list of binary numbers into 3 different numbers. Each binary number is of 21 bits and I want to convert it into 3 sets of [22:12 11:1 0].
Example is shown below.
00111001110101000101011 => 00111001110 10100010101 1
Below is a sample of the file
00111001110101000101011
00111001110101000101001
00111001110101000100111
00111001110101000100101
00111001101101000100011
00111001101101000100001
00111001101101000011111
00111001101101000011101
00111001101101000011011
00111001101101000011001
I have used the following approach but to no avail as it keeps reading data in double format.
close all
clear all
clc
load D:\Folder\File.txt
dataorig=File;
N=length(dataorig)
finalMat=ones(N,3);
datastr=string(dataorig);
temp=char(datastr(1))
num1=temp(1:11)

Accepted Answer

Alex Mcaulley
Alex Mcaulley on 26 Apr 2019
Edited: Alex Mcaulley on 26 Apr 2019
This approach save the result in a cell array:
fid = fopen('File.txt');
data = textscan(fid,'%s');
fclose(fid);
dataNew = cellfun(@myfun,data{1,1},'UniformOutput',false);
dataNew = vertcat(dataNew{:});
%To save in a new file
fid = fopen('example.txt','w');
dataNew = dataNew';
fprintf(fid,'%s\t%s\t%s\r\n',dataNew{:});
fclose(fid);
function b = myfun(a)
a = flip(a);
b = {a(1:11),a(12:22),a(end)};
end
  4 Comments
Usman Siddique
Usman Siddique on 26 Apr 2019
I have run the code. As you mentioned it saves the result in a cell. The problem is I cant seem to view it as text in the command window. It displays "{1×3 cell}" for every ith row.
Is there any way to store the results in a separate text file?
Alex Mcaulley
Alex Mcaulley on 26 Apr 2019
To see the result in the command window, just use:
dataNew = vertcat(dataNew{:})
To write the result in a new txt file:
fid = fopen('example.txt','w');
dataNew = dataNew';
fprintf(fid,'%s\t%s\t%s\r\n',dataNew{:});
fclose(fid);
I have edited my first answer to show the full code

Sign in to comment.

More Answers (0)

Categories

Find more on Text Data Preparation in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!