2012-06-10 1 views
1

는 I 이진 문자열을 변환 한?Matlab의 캐릭터 동작

+1

으로 바꿀 수 있습니다.'messagebin'은 이미 char의 배열입니다. 정확히 무엇을 원하니? 예를 들어 출력을하자. –

+0

처음에는 그런 식으로 문자열에 dec2bin을 할 수 있는지 몰랐다. 예를 들면 옥타브는 큰 시간을 불평한다. –

답변

1

난 당신이 여기에 수행 할 작업을 정말 잘 모르겠지만, 당신이 (NUMCHARS 시간 bits_per_char의 행렬은) 이진 표현의 행을 연결해야하는 경우,이 코드입니다 :

message = 'hello my name is kamran'; 
messagebin = dec2bin(double(message)); 
linearmessagebin = reshape(messagebin',1,numel(messagebin)); 

이중 변환은 ASCII 코드를 반환합니다. 여기서 Matlab 설치에 액세스 할 수 없지만, 예를 들어 원래의 질문에서 제공 한 코드에 대해 옥타브가 불평합니다. 이 친절하게 나에게 지적되면서

참고

, 당신은 올바른 결과를하기 위해, 그것을 "직렬화"전에 messagebin 트랜스해야합니다. 당신이 숫자 매트릭스 결과를 원하는 경우

+0

사실 벡터로 선형화하기 전에'messagebin'을 옮길 필요가 있습니다 :'reshape (messagebin ', 1, []);' – Amro

+0

@Amro : 당신은 완벽합니다. –

1

, 시도 :

>> str = 'hello world'; 
>> b = dec2bin(double(str),8) - '0' 
b = 
    0  1  1  0  1  0  0  0 
    0  1  1  0  0  1  0  1 
    0  1  1  0  1  1  0  0 
    0  1  1  0  1  1  0  0 
    0  1  1  0  1  1  1  1 
    0  0  1  0  0  0  0  0 
    0  1  1  1  0  1  1  1 
    0  1  1  0  1  1  1  1 
    0  1  1  1  0  0  1  0 
    0  1  1  0  1  1  0  0 
    0  1  1  0  0  1  0  0 

각 행은 문자에 해당합니다. 당신은 쉽게 그것의 모양을 0,1

+0

감사합니다 암로가 무엇을 찾고 있습니다. – Kamran