- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到两个信号 S1 和 S2(两个值数组),我想知道 S1 是否与 S2 相同但已移位(S1 和 S2 的图形表示相同,但 S1 将移动到右或左)
问题是:我的算法包含插值 scipy.interpolate.interp1d
,并且该函数在数组中输入 NaN 值。
当我尝试将 S1 和 S2 与内部的 NaN 相关联时,相关数组始终为 [NaN, NaN, NaN, ... , NaN, NaN, NaN]
我的目的是:1)检测S1和S2是否是相同的信号(如果相关性高于某个阈值,我会认为它们是相同的信号)2)如果有,检测它们之间的变化,以便我能够将其删除
为了说明我的算法,我创建了一个简单的代码
import numpy as np
from scipy.signal import correlate
norm = np.linalg.norm
x = np.array([np.nan,1,2,3,0,0,np.nan])
y = np.array([1,2,3,0,0,np.nan,np.nan,np.nan])
corr = correlate(x, y)
print(corr/(norm(x)*norm(y)))
这里的相关函数是scipy.signal.correlate
,但我也尝试了np.correlate,得到了相同的结果
从 stackoverflow 帖子中,我尝试了这种方式:
x = np.array([np.nan,1,2,3,0,0,np.nan])
y = np.array([1,2,3,0,0,np.nan,np.nan,np.nan])
normx = norm(x[~np.isnan(x)])
normy = norm(y[~np.isnan(y)])
maskx = np.ma.array(x, mask=np.isnan(x))
masky = np.ma.array(y, mask=np.isnan(y))
corr = correlate(maskx, masky)
但我仍然只得到 NaN 值..
我是不是做错了什么?
最佳答案
如果任何信号包含 NaN,则 retusrn 将全部为 NaN。
<小时/>使用它来最初删除 nan,然后使用相关函数:
x = np.array([np.nan,1,2,3,0,0,np.nan])
y = np.array([1,2,3,0,0,np.nan,np.nan,np.nan])
x = x[~np.isnan(x)]
y = y[~np.isnan(y)]
corr = np.corrcoef(x, y)
#corrcoef returns the normalised covariance matrix so you want the [1,0] or [0,1] element of this matrix
print(corr[1,0])
#1.0
关于Python - 两个信号与内部 NaN 的互相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802229/
我遇到的问题不是紧急情况,但我不知道该怎么做。我有两个 aspx 网络表单页面。每个都有一个下拉列表。两者都由来自 sql server 的相同数据源填充。问题是,如果我在第 1 页选择一个值,然后转
我正在使用 OpenvSwitch-2.5.2 在两个虚拟机上设置第 2 层网络,如上图所示。 在阅读了 ovs 官方教程和其他一些文章后,我在每个虚拟机上尝试了以下命令: # on vm1 ip l
我是一名优秀的程序员,十分优秀!