【发布时间】:2020-09-02 13:14:58
【问题描述】:
我用python构建了一个神经网络控制器,想用python函数控制一个simulink模型。我的 python 函数的输入和输出是'numpy.array'。输出形状为 [4, 1]。 我使用“matlab 函数”在 simulink 中调用 python 函数。 matlab函数代码如下:
function [u1, u2, u3, u4] = fcn(data_in)
coder.extrinsic('py.controller.multi_output')
out = 0;
out = py.controller.multi_output(data_in);
u1 = out(1);
u2 = out(2);
u3 = out(3);
u5 = out(4);
'py.controller.multi_output(data_in)' 在 matlab 中运行良好并返回 ndarray:
out = py.controller.multi_output(data_in)
out =
Python ndarray:
1
2
3
4
我可以将 ndarray 转换为双倍。 但它在simulink中不起作用:
An error occurred while running the simulation and the simulation was terminated
Caused by:
MATLAB expression '<output of py.controller.multi_output>' is not numeric.
有人告诉我怎么解决吗?
【问题讨论】:
标签: python matlab numpy simulink