Этот пример показывает, как передать массив ячеек 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.