我想将Matlab代码转换为Python,并且在转换一行时遇到了问题。我是对还是不对?我不知道如何在Python中进行赋值。Python中的矩阵分配
Matlab的:
for j=1:a
diff_a=zeros(1,4);
diff_b=zeros(1,4);
for i=1:4
diff_a(i)=abs(ssa(j)-check(i));
diff_b(i)=abs(ssb(j)-check(i));
end
[Y_a,I_a]=min(diff_a);
end
的Python:
for j in arange(0,a):
diff_a=zeros(4)
diff_b=zeros(4)
for i in arange(0,4):
diff_a[i]=abs(ssa[j]-check[i])
diff_b[i]=abs(ssb[j]-check[i])
[Y_a,I_a]=min(diff_a)
最后一行给出了这样的错误:
TypeError: 'numpy.float64' object is not iterable
的问题是在最后一行。 diff_a
是一个复数数组。对不起,没有提供整个代码(它太大)。
的错误是因为Python认为您正尝试分配到两个变量,你只有一个值。相反,只需分配一个变量或使用'real'和'imag'方法提取每个片段。 – Justin
是不是'diff_a.min()'? – Dan
这也可以正常工作... –