MATLAB ® сохраняет все символы как символы Юникод ® с использованием кодировки 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"
Дополнительные сведения о Юникоде, включая сопоставления между символами и кодовыми значениями, см. в разделе Юникод.
char | double | int16 | int32 | int64 | int8 | single | string | uint16 | uint32 | uint64 | uint8