我尝试使用scipy.linalg.toeplitz(c, r=None)在Python中构造一个toeplitz矩阵。尽管我成功了,但仍无法保持Fortran顺序。我需要确保正在构造的toeplitz数组保持Fortran顺序,因为我正在调用BLAS函数。

有办法吗?

最佳答案

只需按Fortran顺序进行复制即可。 toeplitz创建一个新数组,但不能控制顺序。

例如。

x = scipy.linalg.toeplitz([1, 2, 3, 4])
x = np.asfortranarray(x)


如果要节省内存,也可以就地执行此操作。例如。

x[:] = x.T
x = x.T

关于python - 块状Toeplitz矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21194340/

10-10 08:50