Initialize empty matrix in Python

前端 未结 7 1308
旧巷少年郎
旧巷少年郎 2020-12-31 07:56

I am trying to convert a MATLAB code in Python. I don\'t know how to initialize empty matrix in Python.

MATLAB Code:

demod4(1) = [];
<
相关标签:
7条回答
  • 2020-12-31 08:32
    M=[]
    n=int(input())
    m=int(input())
    for j in range(n):
       l=[]
       for k in range(m):
           l.append(0)
       M.append(l)
    print(M)
    

    This is the traditional way of doing it matrix[m,n], However, python offers many cool ways of doing so as mentioned in other answers.

    0 讨论(0)
  • 2020-12-31 08:32

    If you want to initialize the matrix with 0s then use the below code

    # for m*n matrix
    matrix = [[0] * m for i in range(n)]
    
    0 讨论(0)
  • 2020-12-31 08:33

    If you are using numpy arrays, you initialize to 0, by specifying the expected matrix size:

    import numpy as np
    d = np.zeros((2,3))
    
    >>> d
        [[ 0.  0.  0.]
         [ 0.  0.  0.]]
    

    This would be the equivalent of MATLAB 's:

    d = zeros(2,3);
    

    You can also initialize an empty array, again using the expected dimensions/size

    d = np.empty((2,3))
    

    If you are not using numpy, the closest somewhat equivalent to MATLAB's d = [] (i.e., a zero-size matrix) would be using an empty list and then

    append values (for filling a vector)

    d = []
    d.append(0)
    d.append(1)
    >>> d                                                                     
    [0, 1]
    

    or append lists (for filling a matrix row or column):

    d = []                                                                
    d.append(range(0,2))                                                    
    d.append(range(2,4))                                                  
    >>> d                                                                     
    [[0, 1], [2, 3]]
    

    See also:

    initialize a numpy array (SO)

    NumPy array initialization (fill with identical values) (SO)

    How do I create an empty array/matrix in NumPy? (SO)

    NumPy for MATLAB users

    0 讨论(0)
  • 2020-12-31 08:33
    rows = 3
    columns = 2
    M = [[0]*columns]*rows
    

    Or you could also use '' instead of 0

    print(M)
    

    Output:

    M = [[0, 0], [0, 0], [0, 0]] 
    
    0 讨论(0)
  • 2020-12-31 08:37

    To init matrix with M rows and N columns you can use following pattern:

    M = 3
    N = 2
    matrix = [[0] * N for _ in range(M)]
    
    0 讨论(0)
  • 2020-12-31 08:38

    You could use a nested list comprehension:

    # size of matrix n x m
    matrix = [ [ 0 for i in range(n) ] for j in range(m) ]
    
    0 讨论(0)
提交回复
热议问题