[英]multiply 2 time discrete vectors using numpy library (python)
我需要用下一个输入写一个 function:
n1
, x1
, n2
, x2
和 function 返回两个输出n
, y
。
n1
是信号x1
的离散时间数组。 (离散时间意味着时间的样本是整数)。 n2
是信号x2
的离散时间数组。 x1
和x2
是信号的值(例如sin
或cos
)。 定义的 function 的目的是两个信号之间的乘法。 y[n] = x[n1] · x[n2]
基本上我需要将两个时间离散向量相乘:例如: X1=[1,2,3,4]
x2=[1,1,1,1]
n1=[-3,-2,-1,0]
n2=[0,1,2,3]
向量n1
, n2
是在时间 0 相遇的时间向量。 X1
, x2
是它们的值(幅度)。
我需要将它们相乘,答案应该是时间的向量: [-3,-2,-1,0,1,2,3]
幅度向量: [0,0,0,1,0,0,0]
因为它们恰好在时间 0 相遇。
需要使用numpy
库函数。 并没有成功
请帮忙。
您说您想将它们相乘,但您想要的结果没有显示相乘。 你的意思是说向量y
应该包含那些 n1 和 n2 “相遇”的值,否则为零?
向量 n1 和 n2 是否总是包含有序的连续整数,如您的示例所示?
--
澄清后,这是一个解决方案:
n = np.arange(n1[0], n2[-1] + 1)
y = np.zeros(n.size)
y[-n2.size: n1.size] += 1
首先, arange
创建一个从 n1 的第一个元素到 n2 的最后一个元素的连续整数数组,假设 n1 包含的元素低于 n2。 创建一个zeros
数组,最后将一个 ( += 1
) 添加到从末尾开始的n2
size
和从开头开始的n1
size
之间的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.