A function that converts a binary string to its corresponding char values.

24 views (last 30 days)
I need to create a function that converts a binary string to its corresponding char values. I have create a function to convert char values to binary string. Now i need its reverse. Code for str to binary is given here.
Function [y] = str2bin(txt)
For i=1:length(txt)
m=txt(i);
y(i, :) = dec2bin(double(m));
End

Accepted Answer

Stephen23
Stephen23 on 31 Mar 2015
Edited: Stephen23 on 31 Mar 2015
Rather than doing this in a loop you should learn how to write vectorized code in MATLAB. Vectorized code is neater, faster and much easier to read. Loops are your second choice, not your first choice.
Try using dec2bin with the complete string like this:
>> str = 'hello world!';
>> dec2bin(str)
ans =
1101000
1100101
1101100
1101100
1101111
0100000
1110111
1101111
1110010
1101100
1100100
0100001
which returns a character array. If you want a cell array of strings, simply wrap this in a num2cell call:
>> out = num2cell(dec2bin(str),2)
out =
'1101000'
'1100101'
'1101100'
'1101100'
'1101111'
'0100000'
'1110111'
'1101111'
'1110010'
'1101100'
'1100100'
'0100001'
The reverse conversion, from binary string to decimal simply uses bin2dec like this:
>> bin2dec(out)
ans =
104
101
108
108
111
32
119
111
114
108
100
33
Or if you want the original string instead:
>> char(bin2dec(out).')
ans = 'hello world!'

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!