У меня есть большой список кортежей (a, b), где a и b являются 9-мерными векторами из того же пространства. Это существенно кодирует состояния системы и некоторые переходы. Я хотел бы визуализировать поле, описываемое этими кортежами, как стрелки, указывающие из a- > b, либо в 2D, либо в 3D. Одна из моих проблем, однако, заключается в том, что это не корректное векторное поле (не непрерывное), но у меня есть основания полагать, что его можно, вероятно, легко разложить даже в 2D.
Кто-нибудь знает о панели инструментов (для matlab/python) или программе, которая может это сделать? Предположительно сначала предполагалось бы какое-то уменьшение размерности на a и b, а затем нанести небольшие стрелки из одной точки в другую.
Благодарим за помощь!
Хорошо, получается, что MATLAB может это сделать, но это не очень красиво. В основном это сводится к выполнению PCA, а затем с использованием функции колчана для построения графика: Моя матрица X здесь содержит начальные точки моих высокоразмерных узлов в нечетных строках и конечные точки в четных строках. Тогда:
[COEFF, SCORE]= princomp(zscore(X));
x=SCORE(1:2:end,1);
y=SCORE(1:2:end,2);
z=SCORE(1:2:end,3);
u=SCORE(2:2:end,1);
v=SCORE(2:2:end,2);
w=SCORE(2:2:end,3);
quiver3(x,y,z,u-x,v-y,w-z,0);
Недостатком является то, что я не могу найти хороший способ покрасить края, поэтому я получаю огромный беспорядок, если я просто делаю это тривиально. Хорошо, хорошо сейчас!
Вот набор инструментов Matlab алгоритмов сокращения размеров. Я не работал с этим, но я работал с уменьшением размеров, и похоже, что алгоритм многочленного диаграмм/локальных координат сможет извлечь низкоразмерное представление.
Я не уверен на 100%, если это ответит на ваш вопрос или нет, но вы можете посмотреть Повторяющиеся графики. Если это то, что вам нужно, тогда вам не понадобятся дополнительные панели инструментов Matlab.