Matlab到Python-Cod

2024-05-16 09:07:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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代码:

^{pr2}$

这给出了“TypeError:数组()只接受1个参数(给定2个)”

有什么帮助吗?在


Tags: 代码for参数tfzeros数组tbend
1条回答
网友
1楼 · 发布于 2024-05-16 09:07:28

正如@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是:

^{pr2}$

在matlab实现中也有一个问题,因为您试图在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是:

f =

     0     0     0     0     0
     0     0     0     0     0

换言之,除了这几处输入错误之外,每个实现似乎都没有任何问题。你只需要在制作这些示例时更加小心,尤其是在考虑发布关于它们的问题时。在

注意,我重新定义了n=5,这样f的值不会占用太多的答案行。

相关问题 更多 >