Передача массива ячеек как типа последовательности Python

Этот пример показывает, как передать массив ячеек MATLAB® функции Python®.

Следующий модуль Python содержит функциональный theend, который добавляет текст в конец списка. Создайте текстовый файл, скопируйте этот модуль Python и сохраните файл как mymod.py в перезаписываемой папке, например, вашей папке prefdir.

# mymod.py
"""Python module demonstrates passing MATLAB types to Python functions"""
def search(words):
    """Return list of words containing 'son'"""
    newlist = [w for w in words if 'son' in w]
    return newlist

def theend(words):
    """Append 'The End' to list of words"""
    words.append('The End')
    return words

Добавьте папку, содержащую mymod.py к пути поиска файлов Python с помощью метода append типа list.

P = py.sys.path;
append(P,prefdir);

Откройте файл выборочных данных MATLAB, создав массив ячеек, LastName.

load patients.mat

Преобразуйте массив ячеек в 1-by-N массив py.list.

L = py.list(LastName');
class(L)
ans =

py.list

Вызовите mymod.theend в списке.

py.mymod.theend(L);

Функция Python не делает возвращаемой переменной L как выходной аргумент. Вместо этого функция обновляет значение ссылкой.

Просмотрите последний элемент в списке.

L{end}
ans = 

  Python str with no properties.
   The End

Можно передать переменную L другим функциям Python.

Похожие темы