Конвертировать из кода ASCII в строку в MATLAB - PullRequest
8 голосов
/ 04 марта 2011

Если у меня есть строка в matlab, я могу преобразовать ее в вектор кодов ASCII, используя double:

>> my_string = 'asd';
>> double(my_string)

ans =

    97   115   100

Как я могу вернуться в другую сторону? то есть, если у меня есть код ASCII в векторе MATLAB, как я могу создать соответствующую строку?

1007 * например *

ascii_codes = [97 115 100];

следует преобразовать в ...

my_string = 'asd'

Ответы [ 2 ]

20 голосов
/ 04 марта 2011

Как насчет char ( документация )? Например, char(ascii_codes)?

1 голос
/ 02 апреля 2018

Отличной альтернативой функции char , на мой взгляд, является функция native2unicode . Он обрабатывает множество различных схем кодирования, позволяя вам явно указать ту, которая будет использоваться через второй входной аргумент:

unicodestr = native2unicode (байты, кодировка) преобразует байты в Unicode представление с предположением, что байты находятся в схема кодирования символов указывается кодированием. Входной аргумент кодировка не должна содержать символов ('') или имя или псевдоним для схемы кодирования. Вот некоторые примеры: «UTF-8», «latin1», «US-ASCII» и «Shift_JIS». Если кодировка не указана или не имеет символы (''), используется схема кодирования по умолчанию. кодировка может быть символьный вектор или строковый скаляр.

Пример использования:

>> ascii_codes = [97 115 100];
>> my_string = native2unicode(ascii_codes,'ASCII')

my_string =

    'asd'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...