필터 지우기
필터 지우기

Single-byte characters?

조회 수: 18 (최근 30일)
Lipa
Lipa 2011년 5월 24일
Hi!
If I understand correctly, characters in Matlab are always defined as two-byte variables? Is it possible to define a single-byte character?
I'm trying to communicate with an external device, and I need to send it a character string of N bytes = N characters. At the moment, however, when I define my string in Matlab I always get 2*N bytes.
Is it possible to create strings of characters where each character is stored as one byte?
Thanks!

답변 (4개)

Patrick Kalita
Patrick Kalita 2011년 5월 24일
Does this work for you?
>> s = uint8('hello world')
s =
104 101 108 108 111 32 119 111 114 108 100
>> whos
Name Size Bytes Class Attributes
s 1x11 11 uint8
>>
  댓글 수: 1
John D'Errico
John D'Errico 2011년 5월 24일
And of course, char(s) recovers the characters themselves.

댓글을 달려면 로그인하십시오.


Jan
Jan 2011년 5월 24일
If the function expects a CHAR, you must provide 2-byte characters. 1-byte characters are simply not CHARs and will be refused by the called function.
Please post any details about the program used for "communication with an external device".

Lipa
Lipa 2011년 5월 24일
Thanks for the reply. I tried what you suggested before, but the problem is that my external function that I'm calling requiers a character string as input. I know that generally (single-byte) "char" should be the same as "uint8", but this doesn't seem to be the case in Matlab? When I'm calling with uint8, I get the error: "Parameter can not be converted to a string."
So it seems that the input must be of "char" type, yet only one byte should be reserved for each character in the string...
  댓글 수: 1
Patrick Kalita
Patrick Kalita 2011년 5월 24일
Which function is giving you the error? Is it something provided by MATLAB or a Toolbox?

댓글을 달려면 로그인하십시오.


Laura Proctor
Laura Proctor 2011년 5월 24일
You can try the function unicode2native which will convert your characters into numeric bytes depending on the encoding scheme that you select:
bytes = unicode2native('hello world','UTF-8')
But I don't know that this will resolve the issue. Can you copy and paste the exact command you are using as well as the error message?

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by