给矩阵的某一个元素赋值复数时,出现了如下问题:
V = ones((new_rank,D.shape[1]),dtype=float64)
# 矩阵中显示的值:
# 真实要赋值的值:
# warning:
D:\python\DMD\DMD.py:60: ComplexWarning: Casting complex values to real discards the imaginary part
V[:,i] = dot(V[:,i],omega[i])
这个问题出现是因为dtype的赋值出现了问题,在numpy中,dtype 的 default value是float64, 这里已经溢出了,所以我们改用dtype = complex:
V = ones((new_rank,D.shape[1]),dtype=complex)
# 两个值一样了
领取专属 10元无门槛券
私享最新 技术干货