繁体   English   中英

使用 numpy 库(python)将 2 个时间离散向量相乘

[英]multiply 2 time discrete vectors using numpy library (python)

我需要用下一个输入写一个 function:

n1 , x1 , n2 , x2和 function 返回两个输出n , y

n1是信号x1的离散时间数组。 (离散时间意味着时间的样本是整数)。 n2是信号x2的离散时间数组。 x1x2是信号的值(例如sincos )。 定义的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM