不支持 Simulink 中可以是 2D 的 3D 矩阵
Posted
技术标签:
【中文标题】不支持 Simulink 中可以是 2D 的 3D 矩阵【英文标题】:3D Matrix in Simulink which can be 2D is not supported 【发布时间】:2014-11-27 17:14:19 【问题描述】:我正在使用 SIMULINK,我需要定义一个旋转矩阵 3,3,N,其中 N 是我要模拟的机器人数量。为此,因为我也在使用 Simulink Coder,所以我必须将与该矩阵相关的信号定义为 Variable Size,并且必须按以下方式定义上限:
问题是当我只想使用一个机器人时(我将 n_robots 设置为 1)我收到以下错误。
无法将“test_pos_ctrl_target/旋转矩阵到欧拉角”的“R”维度初始化为 [3x3x1]。当矩阵的维数超过 2 时,尾随维度的大小必须大于 1。
有人可以帮助我吗?
非常感谢。
【问题讨论】:
【参考方案1】:您不能将最后一个维度设为 1
,因为 MATLAB 将维度为 [m,n,1]
的任何矩阵视为 [m,n]
。详情请见size() returns 1 where matrix dimension should not exist。
尝试定义大小为 [n_robots,3,3]
的 R
,然后在代码中重新排列矩阵(我假设您使用的是 MATLAB Function 块)。
【讨论】:
以上是关于不支持 Simulink 中可以是 2D 的 3D 矩阵的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D 导出apk,OpenGL es2手机不支持问题的解决