不支持 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 矩阵的主要内容,如果未能解决你的问题,请参考以下文章

使用 2D 和 3D 上下文的画布 3D 绘图

Unity3D 导出apk,OpenGL es2手机不支持问题的解决

unity2d中动画状态比较多,且切换非常频繁,有啥办法好管理

D3D处理2D图像: NV12格式及其转换

3d转换

如何使用FonePaw Video Converter Ultimate将 2D 电影转换为 3D