Используйте 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, точка с запятой (;).

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

Передать управляющий символ обратной косой черты (\) как str Python введите, вставьте управляющий символ \n новой строки путем вызова sprintf MATLAB функция. 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.']