Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用numpy库(python)乘以2个时间离散向量_Python_Python 3.x_Numpy_Python Requests_Jupyter Notebook - Fatal编程技术网

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

使用numpy库(python)乘以2个时间离散向量,python,python-3.x,numpy,python-requests,jupyter-notebook,Python,Python 3.x,Numpy,Python Requests,Jupyter Notebook,我需要编写一个包含以下输入的函数: n1,x1,n2,x2,函数返回两个输出n,y n1是信号的离散时间数组x1。(离散时间表示时间样本为整数)n2是信号的离散时间数组x2x1和x2是信号的值(例如sin或cos)。定义函数的目的是两个信号之间的相乘y[n]=x[n1]·x[n2]‏ 基本上我需要乘以2‏时间离散向量:例如: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是‏它们的值(

我需要编写一个包含以下输入的函数:

n1
x1
n2
x2
,函数返回两个输出
n
y

n1
是信号的离散时间数组
x1
。(离散时间表示时间样本为整数)
n2
是信号的离散时间数组
x2
x1
x2
是信号的值(例如
sin
cos
)。定义函数的目的是两个信号之间的相乘<代码>y[n]=x[n1]·x[n2]‏

基本上我需要乘以2‏时间离散向量:例如:
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“相交”的那些值应该包含1,否则应该包含0

向量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。
创建一个
零数组,最后在
n2
大小与
n1
大小之间的元素中添加一个(
+=1
),从末尾开始,从开头开始。

意思是说向量y应该包含n1和n2相交的那些值的1“,否则为零?“当然是的,假设你在乘以两个信号,每个信号都有自己的时间,如果其中一个信号从-3开始到0结束,第二个信号从-1开始到5结束。综合时间尺度为-3到5。第一个信号在1,2,3,4,5处没有值,第二个信号在-3,-2,-1处没有值。因此,如果我想相乘,那么结果信号的值在不相交时应为0,在相交时不应为0。@skyline在澄清后添加了编辑。提供的答案假设n1,n2都包含有序的连续整数,并且n1包含比n2更低的边值。但是我仍然有函数输出y的问题。函数获取(def ProductSignal(n1,x1,n2,x2):)的输入。n=np。arange(n1[0],n2[-1]+1)求解输出n。但是我仍然对x1,x2的输入有问题。当我将这2个向量乘以时间向量(x1与n1,x2与n2)时,假设输入为x1=[1,2,3,4],n1=[-3,-2,-1,0],x2=[1,1,3],n2=[-1,0,1,2],根据时间向量,它们在时间0处相遇,所以输出为:n=[-3,-2,-1,0,1,2]-时间向量y=[0,0,0,3*1=3,4*0=0,0](零表示未匹配的时间,而不是零表示加工的时间[-1,0])@skyline您提到了未显示的功能,并要求提供原始帖子中未包含的功能。通过所需行为的具体示例,明确、具体和全面地回答未来的问题。