我有一个使用卡尔曼滤波器的 C++ 算法。在代码中的某处预测四元数q'然后我用卡尔曼滤波器q更新四元数。
我想在 Matlab 中绘制两个图形,预测四元数和校正(更新)四元数的演变,所以我使用“engine.h”库在处理过程中向 Matlab 发送四元数信息(实际上我发送的是 4x1 矩阵) .
所以我的问题是:在 Matlab 中绘制四元数的最佳方法是什么,以便我可以直观地提取信息?单独绘制角度会更好吗?
我有一个使用卡尔曼滤波器的 C++ 算法。在代码中的某处预测四元数q'然后我用卡尔曼滤波器q更新四元数。
我想在 Matlab 中绘制两个图形,预测四元数和校正(更新)四元数的演变,所以我使用“engine.h”库在处理过程中向 Matlab 发送四元数信息(实际上我发送的是 4x1 矩阵) .
所以我的问题是:在 Matlab 中绘制四元数的最佳方法是什么,以便我可以直观地提取信息?单独绘制角度会更好吗?
好吧,假设问题是“如何以一种很好的方式可视化 4D 空间”,我可以想到几个选项:
SCATTER(X,Y,S,C) 在向量 X 和 Y 指定的位置显示彩色圆圈(必须相同大小)。
如果您的问题是“如何以一种不错的方式可视化四分位数, 请查看
我认为一个不错的选择是使用 C++ MATLAB 引擎将四元数作为向量发送到 MATLAB
[qx qy qz qw]
然后,在 MATLAB 环境中,您可以使用工具箱转换为欧拉角,这是一种常见的视觉选项。
在 matlab 引擎中添加工具箱的路径:
addpath(genpath('C:\Program Files (x86)\MATLAB\R2010a\toolbox\SpinCalc'));
使用 spincalc 工具箱,转换将是这样的:
Angles=SpinCalc('QtoEA321',Quaternion,0,0);