2015-12-07 4 views
1

Я пытаюсь использовать функцию MATLAB в Simulink для вызова сценария с использованием функции escape-функции оболочки.Использование Shell Escape (!) В Simulink Model (функция MATLAB)

Единственный код в MATLAB функции файла (файл .m) заключается в следующем:

function y = fcn(u)  
%#codegen 
!C:\Python27\python.exe C:\Users\Ben\Downloads\endrecording.py 
y = u; 

Когда я пытаюсь выполнить этот код я получаю следующее сообщение об ошибке: (!)

Shell побег не поддерживается.

Function 'MATLAB Function' (#35.30.92), line 3, column 1: 
"!C:\Python27\python.exe C:\Users\Ben\Downloads\endrecording.py" 
Launch diagnostic report. 

Есть еще один способ вызвать этот сценарий Python без использования Shell Escape, или, возможно, обходной путь, чтобы получить Shell бежать на работу?

+0

В последней версии MATLAB можно напрямую вызвать python: http://www.mathworks.com/help/matlab/matlab_external/call-user-defined-custom-module.html – eph

ответ

1

Используйте вместо этого функцию system.

function y = fcn(u)  
%#codegen 
system('C:\Python27\python.exe C:\Users\Ben\Downloads\endrecording.py') 
y = u; 

Также читайте Run External Commands, Scripts, and Programs для получения более подробной информации.

+0

Большое вам спасибо! Мне пришлось добавить строку в начале функции: coder.extrinsic ('system'), но в остальном она отлично работает. –

Смежные вопросы