ERROR: Python in Simulink: Class mismatch for variable 'commandOut'. Expected 'double', Actual 'char'.

2 次查看(过去 30 天)
I get an error while Running a Python Script in a Simulink Model
function y = Test_1(a,k)
coder.extrinsic('tic','toc', 'system','clear' ,'clc','num2str' );
commandStr = ['C:\LegacyApp\Python27\python sqd.py ',num2str(a),' ',num2str(k)];
[status, commandOut] = system(commandStr);
y = coder.nullcopy(zeros(size(a),'double'));
y=commandOut;
This is the Error which i got during compilation:
Class mismatch for variable 'commandOut'. Expected 'double', Actual 'char' .

回答(1 个)

Robert Snoeberger
Robert Snoeberger 2015-3-10
commandOut , the second output argument from system , is a char array. See the doc . You used num2str to convert to char arrays from the variables a and k . Similarly, you need to convert to double from commandOut . You may be able to use str2num .
If you are using R2014b or newer, then you can call Python from MATLAB .

类别

Help CenterFile Exchange 中查找有关 Call Python from MATLAB 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by