2024-05-16 09:07:28 发布
网友
我在matlab中有一段代码:
Tf=eye(2); Tb=eye(2); Tt=eye(2); n=250; f=zeros(2,n); for i=1:n f(:,i)=Tf*f(:,i-1); end
我试着把它改成Python代码:
这给出了“TypeError:数组()只接受1个参数(给定2个)”
有什么帮助吗?在
正如@CharlesBrunet指出的,python实现有几个问题,应该是:
import numpy Tf=numpy.eye(2) n=5 f=numpy.zeros((2,n)) for i in range(n): f[:,i]=numpy.dot(Tf, f[:,i-1])
得到的f是:
f
在matlab实现中也有一个问题,因为您试图在for循环的第一次迭代中索引f(:,0),这将导致错误:Attempted to access f(:,0); index must be a positive integer or logical。以下是固定版本:
for
f(:,0)
Attempted to access f(:,0); index must be a positive integer or logical
Tf=eye(2); n=5; f=zeros(2,n); for i=2:n f(:,i)=Tf*f(:,i-1); end
f = 0 0 0 0 0 0 0 0 0 0
换言之,除了这几处输入错误之外,每个实现似乎都没有任何问题。你只需要在制作这些示例时更加小心,尤其是在考虑发布关于它们的问题时。在
注意,我重新定义了n=5,这样f的值不会占用太多的答案行。
n=5
正如@CharlesBrunet指出的,python实现有几个问题,应该是:
得到的
^{pr2}$f
是:在matlab实现中也有一个问题,因为您试图在
for
循环的第一次迭代中索引f(:,0)
,这将导致错误:Attempted to access f(:,0); index must be a positive integer or logical
。以下是固定版本:得到的
f
是:换言之,除了这几处输入错误之外,每个实现似乎都没有任何问题。你只需要在制作这些示例时更加小心,尤其是在考虑发布关于它们的问题时。在
注意,我重新定义了
n=5
,这样f
的值不会占用太多的答案行。相关问题 更多 >
编程相关推荐