Поделитесь объектом Python между блоками в SimulinkPython

Программы на Python
Anonymous
Поделитесь объектом Python между блоками в Simulink

Сообщение Anonymous »

Я создал класс на Python. В моем приложении этот класс представляет собой своего рода таблицу поиска.
Вот пример класса, иллюстрирующий эту тему:

Код: Выделить всё

class ExampleClass:

def __init__(self, var1):
self.prop1 = var1

def get_property(self):
return self.prop1
Matlab предлагает возможность вызывать модули Python непосредственно в среде Matlab (см. документацию Matlab)
Python вызывается следующим образом:

Код: Выделить всё

>>> py.importlib.import_module("ExampleClass")
>>> x = py.ExampleClass.ExampleClass(1)
>>> x.get_property()
ans =

1
Я хотел бы сделать x доступным в m-функциональном блоке Simulinks для вызова get_property() из всех m-функциональных блоков. Обратите внимание, что создание x требует больших вычислительных затрат, поэтому я хочу загрузить его в рабочую область один раз при инициализации моделирования.
Что я пробовал до сих пор:
Я попытался передать мой примеркласс m-функциям через параметр маски, но получил ошибку:

Код: Выделить всё

Error:Expression 'object name' for type of data 'x' did not evaluate to a valid type.
Это понятно, поскольку Simulink не позволяет использовать типы данных, отличные от int, double и других стандартных типов данных.Есть ли способ вызвать x.get_property() из моих m-функций?

Подробнее здесь: https://stackoverflow.com/questions/786 ... n-simulink

Вернуться в «Python»