MATLAB ® сохраняет все символы как символы Unicode ® с помощью UTF-16 кодировки, где каждый символ представлен числовым кодовым значением. (Юникод включает набор символов ASCII в качестве первых 128 символов, поэтому символы ASCII имеют одинаковые числовые коды в Юникоде и ASCII.) И символьные массивы, и строковые массивы используют эту кодировку. Можно преобразовать символы в их числовые кодовые значения с помощью различных функций числового преобразования. Вы можете преобразовать числа в символы с помощью char
функция.
Можно преобразовать символы в целые числа, которые представляют их значения кода Юникода. Чтобы преобразовать один символ или символьный массив, используйте любую из следующих функций:
double
uint16
, uint32
, или uint64
Лучшая практика - использовать double
функция. Однако, если вам нужно хранить числовые значения в виде целых чисел, используйте беззнаковые целые числа, имеющие не менее 16 биты, потому что MATLAB использует UTF-16 кодировку.
Преобразуйте вектор символов в значения кода Юникода с помощью double
функция.
C = 'MATLAB'
C = 'MATLAB'
unicodeValues = double(C)
unicodeValues = 1×6
77 65 84 76 65 66
Вы не можете преобразовать символы в строковые массивы непосредственно в значения кода Юникода. В частности, double
функция преобразует строки в числа, которые они представляют, так же как и str2double
функция делает. Если double
невозможно преобразовать строку в число, после чего возвращается NaN
значение.
str = "MATLAB";
double(str)
ans = NaN
Чтобы преобразовать символы в строке, сначала преобразуйте строку в вектор символов или используйте фигурные скобки, чтобы извлечь символы. Затем преобразуйте символы с помощью функции, такой как double
.
C = char(str); unicodeValues = double(C)
unicodeValues = 1×6
77 65 84 76 65 66
Вы можете преобразовать значения Юникода в символы с помощью char
функция.
D = [77 65 84 76 65 66]
D = 1×6
77 65 84 76 65 66
C = char(D)
C = 'MATLAB'
Типичное применение для char
создание символов, которые вы не можете вводить, и добавление их к строкам. Для примера создайте символ для символа степени и добавьте его к строке. Значение кода Юникода для символа степени 176.
deg = char(176)
deg = '°'
myLabel = append("Current temperature is 21",deg,"C")
myLabel = "Current temperature is 21°C"
Для получения дополнительной информации о Юникоде, включая отображения между символами и значениями кода, смотрите Unicode.
char
| double
| int16
| int32
| int64
| int8
| single
| string
| uint16
| uint32
| uint64
| uint8