exponenta event banner

Использовать Python str Переменные в MATLAB

В этом примере показано, как использовать Python ®str переменные в MATLAB ®.

Вызов функции Python с помощью str Входные аргументы

Вызов функции Python, которая принимает str входной аргумент, передать строку MATLAB или символьный вектор. MATLAB автоматически преобразует значения в Python str тип.

Например, Python os.listdir получает информацию о содержимом папки, указанной как тип str. Создание вектора символов, представляющего допустимую папку и вызов os.listdir. Количество папок примеров зависит от установленного продукта.

folder = fullfile(matlabroot,'help','examples');
F = py.os.listdir(folder);
exFolders = py.len(F)
exFolders = 
  Python int with properties:

    denominator: [1×1 py.int]
           imag: [1×1 py.int]
      numerator: [1×1 py.int]
           real: [1×1 py.int]

    267

Использовать Python str Введите в MATLAB

В MATLAB строка Python является py.str переменная. Для использования этой переменной в MATLAB вызовите char. Например, Python os.path.pathsep функция возвращает символ разделителя пути Python, точку с запятой (;).

p = py.os.path.pathsep
p = 
  Python str with no properties.

    ;

Чтобы вставить этот символ между именами путей, введите:

['mypath' char(p) 'nextpath']
ans = 
'mypath;nextpath'

Чтение элементов в строке Python

Можно индексировать в строку Python так же, как индексировать в строку MATLAB. Создайте вектор символов MATLAB и отобразите диапазон символов.

str = 'myfile';
str(2:end)
ans = 
'yfile'

Преобразование вектора символов в Python str введите и выведите одни и те же символы.

pstr = py.str(str);
pstr(2:end)
ans = 
  Python str with no properties.

    yfile

Передать управляющий символ обратной косой черты MATLAB

Для передачи символа управления обратной косой чертой (\) как Python str введите, вставьте новый символ управления строкой \n путем вызова MATLAB sprintf функция. Python заменяет \n с новой строкой.

py.str(sprintf('The rain\nin Spain.'))
ans = 
  Python str with no properties.

    The rain
    in Spain.

Без sprintf функция, как MATLAB, так и Python интерпретировать \ как литеральная обратная косая черта.

py.str('The rain\nin Spain.')
ans = 
  Python str with no properties.

    The rain\nin Spain.

Передать эту строку методу строки Python split. Python обрабатывает вектор символов MATLAB как необработанную строку и добавляет \ символ для сохранения исходной обратной косой черты.

split(py.str('The rain\nin Spain.'))
ans = 
  Python list with no properties.

    ['The', 'rain\\nin', 'Spain.']