不支持Simulink中可以是2D的3D矩阵

时间:2014-11-27 17:14:19

标签: matlab matrix simulink robotics matlab-coder

我正在使用SIMULINK,我需要定义一个旋转矩阵3,3,N,其中N是我试图模拟的机器人数量。要做到这一点,因为我也在使用Simulink编码器,我必须将与此矩阵相关的信号定义为变量大小,我必须按以下方式定义上限: enter image description here

问题是当我只想使用一个机器人时(我将n_robots设置为1)我收到以下错误。

无法初始化' R' ' test_pos_ctrl_target /旋转矩阵到欧拉角度'至[3x3x1]。当矩阵的维数超过2时,尾随维的大小必须大于1.

有人可以帮助我吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您不能将最后一个维度设为1,因为MATLAB会将任何维度[m,n,1]矩阵视为[m,n]。有关详细信息,请参阅size() returns 1 where matrix dimension should not exist

尝试定义大小为R的{​​{1}},然后在代码中重新排列矩阵(我假设您使用的是MATLAB功能块)。