How to convert char to uint8 and vice versa without changing the underlying data
180 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
.
0 Commenti
Risposte (2)
James Tursa
il 4 Feb 2020
Modificato: James Tursa
il 4 Feb 2020
Simply:
c = original char array
u = uint8(c);
Or
u = original uint8 array
c = char(u);
If you mean you want to reinterpret one as the other without a data copy, you can't because MATLAB stores char data as 2-bytes per char and uint8 is of course 1 byte per element.
If you want to reinterpret the char as uint16 or vice-versa without a data copy, it can be done but not officially. You have to resort to mex hacks. E.g.,
0 Commenti
Walter Roberson
il 4 Feb 2020
I speculate that what you need is https://www.mathworks.com/help/matlab/ref/unicode2native.html unicode2native() to convert characters to bytes, and native2unicode() to convert bytes to unicode. The functions offer a variety of ways of encoding character positions greater than 255, including UTF8 and UTF16LE and UTF16BE .
0 Commenti
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!