Построение кватерниона в Matlab с использованием "engine.h" из c ++ - PullRequest
4 голосов
/ 11 января 2012

У меня есть алгоритм на C ++, который использует Kalman Filter.Где-то в коде предсказывается кватернион q ', а затем я обновляю кватернион с помощью фильтра Калмана q .

Я хочу построить две графики в Matlab с эволюцией прогнозируемого кватерниона и исправленного (обновленного) кватерниона, поэтому я использую библиотеку «engine.h» для отправки информации о кватернионах в Matlab во время обработки (на самом делеsend - это матрица 4x1.

Итак, мой вопрос : Как лучше всего построить кватернион в Matlab, чтобы я мог визуально извлекать информацию?Может быть, лучше построить углы отдельно?

Ответы [ 2 ]

4 голосов
/ 03 июля 2012

Я думаю, что хорошим вариантом является отправка кватерниона в качестве вектора в MATLAB с использованием C ++ MATLAB engine

[qx qy qz qw]

Затем в среде MATLAB вы можете использовать набор инструментов для перевода в углы Эйлера, что является распространенным визуальным вариантом.

Для добавления пути набора инструментов в движке Matlab:

addpath(genpath('C:\Program Files (x86)\MATLAB\R2010a\toolbox\SpinCalc'));

С набором инструментов spincalc преобразование будет выглядеть примерно так:

Angles=SpinCalc('QtoEA321',Quaternion,0,0);
4 голосов
/ 11 января 2012

Хорошо, предполагая, что вопрос «Как красиво визуализировать 4D пространство», я могу придумать несколько вариантов:

  • Показать несколько срезов пространства, предназначенных для(x, y, z, t) -> (x, y), (y, z) и т. д.
  • Показать (x, y) в виде точечной диаграммы и закодировать информацию z в ​​цвете,т в размере точки.Для этого вы можете использовать команду scatter :

SCATTER (X, Y, S, C) отображает цветные круги в местах, указанных векторами X и Y(который должен быть одинакового размера).

Если ваш вопрос был "Как хорошо визуализировать четвертичные числа, проверьте это

...