Я создал класс на 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-функциональном блоке Simulink
s для вызова 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