使用numpy在python中存储可变数量的矩阵

2024-09-26 22:54:55 发布

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

我试图用numpy从MatLab重新创建一些代码,但我无法找到如何存储可变数量的矩阵。在MatLab中,我使用了以下代码:

for i = 1:rows
    K{i} = zeros(5,4);  %create 5x4 matrix

    K{i}(1,1)= ET(i,1); %put knoop i in table
    K{i}(1,3)= ET(i,2); %put knoop j in table    

    ... *do some stuff with it*

end

我假设我需要创建一个矩阵列表,但我只能在列表中存储单个数组,而不能存储矩阵。像这样,但是工作:

^{pr2}$

我试着看着 https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html 但这对我没有帮助。在

通过一些类似的问题,一个脏方法似乎在使用全局变量,而不是更改变量名,如下所示:

for x in range(0, 9):
     globals()['string%s' % x] = 'Hello'
     print(string3)

这是我实现目标的最佳方法吗?还是有一种在变量中存储多个矩阵的适当方法?或者我想要一些我不想做的事情,因为python有不同的处理方式?在


Tags: 方法代码innumpy列表for数量put
2条回答

这样的怎么样:

import numpy as np

myList = []
for i in range(100):
    mtrx = np.zeros((5,4))
    mtrx[1,2] = 7
    mtrx[3,0] = -5
    myList.append(mtrx)

在MATLAB代码中,您使用的是单元数组。单元格是通用容器。Python中的等价物是正则的list-而不是numpy结构。您可以创建numpy数组,然后将它们存储在如下列表中:

import numpy as np
array1 = np.array([1, 2, 3, 4])    # Numpy array (1D)
array2 = np.matrix([[4,5],[6,7]])  # Numpy matrix
array3 = np.zeros((3,4))           # 2D numpy array
array_list = [a1, a2, a3]          # List containing the numpy objects

所以您的代码需要修改为更像这样:

^{pr2}$

如果您刚刚开始使用Python进行科学计算,那么article很有帮助。在

相关问题 更多 >

    热门问题