error when using horzcat

Hi for all...
i have error when using horzcat >>> i crate two vectors randomly ( count1=randi(0:1 ,[1,32]); ) and ( count2=randi(0:1 ,[1,32]); ) and i have this vector number ( d0 = dec2bin( 17623,15); ) the problem is : when i using horzcat ( count1,count2,d0) the result appear with some symbols
can anyone help me

 Accepted Answer

The problem is that the output from dec2bin is a string, so horizcat considers everything a string. The ‘symbols’ you see are therefore ‘d0’. To see all of the variables as a string of [0 1] ‘bits’ (strings in this instance), use num2str:
count1=num2str(randi(0:1 ,[1,32]),'%d');
count2=num2str(randi(0:1 ,[1,32]),'%d');
d0 = dec2bin( 17623,15);
result = horzcat(count1,count2,d0)

4 Comments

thank you .. but i cann't using (xor)operation with the result
count1=num2str(randi(0:1 ,[1,32]),'%d');
count2=num2str(randi(0:1 ,[1,32]),'%d');
d0 = dec2bin( 17623,15);
result1 = horzcat(count1,count2,d0)
count4=num2str(randi(0:1 ,[1,32]),'%d');
count3=num2str(randi(0:1 ,[1,32]),'%d');
d0 = dec2bin( 17623,15);
result2 = horzcat(count3,count4,d0)
did you have another suggestion
My pleasure.
You didn’t mention using xor!
It’s necessary to be creative for this to work:
count1=num2str(randi(0:1 ,[1,32]),'%d');
count2=num2str(randi(0:1 ,[1,32]),'%d');
d0 = dec2bin( 17623,15);
result1 = horzcat(count1,count2,d0);
count4=num2str(randi(0:1 ,[1,32]),'%d');
count3=num2str(randi(0:1 ,[1,32]),'%d');
d0 = dec2bin( 17623,15);
result2 = horzcat(count3,count4,d0);
result1n = uint8(result1)-48;
result2n = uint8(result2)-48;
xor_result = xor(result1n, result2n);
fprintf(1, ['\nxor_result = ' repmat('% d', 1, length(xor_result)) '\n'], xor_result);
produces (in this instance, results will differ between runs):
xor_result = 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
There might be more efficient ways to do this (since I don’t usually work with binary strings). Even if inefficient, this has the virtue of producing the correct result.
thank you very much
My pleasure!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!