【问题标题】:How can I find the difference between two plots with a dimensional mismatch?如何找到尺寸不匹配的两个图之间的差异?
【发布时间】:2015-08-06 02:07:25
【问题描述】:

我有一个问题,我不知道是否有现成的解决方案。

来了,

我有两个数据集,绘制在同一个图上。我需要找到它们的区别,到目前为止很简单......
问题在于说矩阵A 有1000 个数据点,而第二个(矩阵B)有580 个数据点。由于两个图之间存在尺寸不匹配,我将如何找到这两个图之间的差异。

我想到的一种方法是人为地将矩阵 B 膨胀到 1000 个数据点,但绘图的趋势将保持不变。这可能吗?如果是的话怎么做?

例如:

A=[1 45 33 4 1009 ];
B=[1 22 33 44 55 66 77 88 99 1010];

Ya=A.*20+4;
Yb=B./10+3;

C=abs(B - A)

plot(A,Ya,'r',B,Yb)
xlim([-100 1000])
grid on
hold on
plot(length(B),C)

【问题讨论】:

  • 你必须膨胀矩阵 B。像 B_in = zeros(size(A));比你在 A 中得到 B 的索引。B 中的点 567 对应于 A 或换句话说 B 的 X 点然后 B_in(indexCorrec) = B;然后 diff = diff([A,B_in]);就是这样

标签: matlab


【解决方案1】:

一种方法是将 580 个元素的向量重新采样为 1000 个样本。为此使用 matlab resample(我相信需要信号处理工具箱):

x = randn(580,1);
y = randn(1000,1);

xr = resample(x, 50,29); # 50/29 = 1000/580 is the resampling ratio

然后您应该能够比较两个数据向量。

【讨论】:

    【解决方案2】:

    我能想到的方法有两种:

    1-匹配大小:

    • 为元素数量较少的矩阵生成更多数据(使用插值等)
    • 从矩阵中删除一些元素数量较多的数据(即异常值删除)

    2- 比较矩阵及其属性。

    例如,您可以计算一个矩阵的均值和协方差,并将其与另一个矩阵进行比较。其他选项包括,covmeanmedianstd、var、xcorrxcov

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 2018-05-20
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多