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

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

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

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

Например, os.listdir Python функция получает информацию о содержимом папки, заданную как тип 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. Например, os.path.pathsep Python функция возвращает символ Python path separator, точку с запятой (;).

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'

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

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.']