将多个矢量结果组合到一个图表中的最佳方法是什么?

计算科学 matlab 向量
2021-12-26 19:48:18

目前我正在编写我的研究报告,在那里我做了很多测量。现在我已将所有内容上传到 Matlab 并在图表上可视化。每一个由 4 条用不同颜色绘制的线组成。正如您在下图中看到的,它们彼此非常相似: 在此处输入图像描述

这只是我测量的一部分,我不能将它们全部添加到我的工作中。此外,所有这些都没有明确显示它们之间的相似性。我想要实现的是拥有一张图表,以某种方式是所有图表的平均值。

我现在看到的问题是每个图表(x 轴)和不同比例(y 轴)中的样本数量不同。因此,我将不胜感激有关如何应对此问题的建议。由于这两个问题,我不能对所有结果做简单的平均。将所有结果显示为一个图表的最佳方法是什么?

编辑:我完全忘记解释什么是价值观。黑色旁边的所有颜色代表加速度计不同轴的读数。所以红色是X,蓝色是Y,绿色是Z。黑色是所有3轴的向量和。

再次澄清一下,我希望在所有图表上都有所有这些读数。所以我会将所有这些图表组合在一起并显示为一个图表,其中仍然有 4 种颜色。我希望有一些读数变平,一些平滑等等。

1个回答

如果您知道 x 轴如何从一个数据集到下一个数据集,我能想到的最佳解决方案是在 matlab 中使用命令“interp1”。我已经编译了一个带有输出的小脚本来向您展示一些示例用法。本质上,您想要做的是从每个数据集中重新映射您的数据,以便它们共享一些公共轴,您可以使用“interp1”执行此操作,就像我在示例中所做的那样。

close all

x1 = 1:10; %Some data size 10
y1 = x1.^2; %Some data size 10, y1(x1)

x2 = linspace(1,10,20); %Some data size 20, with different x-axis
y2 = x2.^2; %Some data size 20, with different x-axis, y2(x2)

y2interp=interp1(x2,y2,x1); %Interpolate y2 data onto x1 axis

subplot(1,2,1);plot(x1,y1,'bo-',x2,y2,'r+-');
legend('y1','y2','Location','North')
title('Original data for y1 and y2')
subplot(1,2,2);plot(x1,y1,'bo-',x1,y2interp,'r+-');
legend('y1','y2','Location','North')
title('Interpolated data for y2 plotted over y1')

在此处输入图像描述