У меня есть пользовательская функция Matlab. Это написано кем-то другим. В этом файле есть несколько функций, но я пытаюсь вызвать первую функцию, имя которой совпадает с именем файла .m. Он получает 4 аргумента (строка, строка, строка, логическое значение). Обычно в Matlab я называю это так: function ('string', 'string, true) При попытке в Python я использую следующий код.
def CodeGenerationAndResim(self, Models=None, Resim=False, Type='TW'):
""" This function will start Matlab and generates code for each Simulink model
and creates Resim archives for the release.
All variables:
Models - All Sim Modelto generate c code for
Resim - Running Resim function
Type - Type of Resim archive
matlabEngine - Matlab engine to start Matlab
MatlabEngineSuccessfull - Checks if Matlab engine is started without error
CodeGenSuccessfull - Checks if Code Generation is successsful
ResimSuccessfull - Checks if Resim function is performed successfully.
"""
# Check variables
MatlabEngineSuccessfull = True
CodeGenSuccessfull = True
ResimSuccessfull = True
# Call Matlab engine
try:
matlabEngine = matlab.engine.start_matlab('-nodesktop', background = False)
matlabEngine.addpath("C:\\temp")
except EngineError as e:
MatlabEngineSuccessfull = False
Print("Could not start Matlab. Do you have Matlab 64 bits installed?")
# Generate code for models in a loop
if Models is not None and MatlabEngineSuccessfull:
for model in Models:
try:
matlabEngine.rtwbuild(model)
except Exception as e:
CodeGenSuccessfull = False
print('Something went wrong')
# Running Resim
if Resim and MatlabEngineSuccessfull and CodeGenSuccessfull:
try:
matlabEngine.resimPrepareNewVersion('all','DAS2_TwYYWW_2005',1)
except Exception as e:
ResimSuccessfull = False
print(e)
return MatlabEngineSuccessfull, CodeGenSuccessfull, ResimSuccessfull
Я получаю следующую ошибку:
Error using resimPrepareNewVersion
Too many output arguments.
Too many output arguments.
Я не понимаю ошибки. Я уже привожу те же аргументы, что и в Matlab. Даже когда я даю ему 3, 2 или без аргументов, я получаю ту же ошибку. Когда Matlab загружает, эти функции загружаются автоматически, поэтому мне не нужно добавлять путь, но я все равно сделал это. Однако я пытался, не указывая пути. Генерация кода и запуск Matlab проходят без проблем. В Matlab эта функция загружает некоторые другие файлы и открывает информационный диалог, в котором это что угодно.