Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,990 questions

51,935 answers

573 users

How to change all elements of row i and column j in a binary matrix to 0 if cell[i, j] is 0 with Python

1 Answer

0 votes
def changeRowColumn(matrix, row, col) :
    (rows, cols) = (len(matrix), len(matrix[0]))

    # -1 = different from the existing zeros
    
    for j in range(cols):
        if (matrix[row][j] != 0) :
            matrix[row][j] = -1
        
    for i in range(rows):
        if (matrix[i][col] != 0) :
            matrix[i][col] = -1

def changeBinaryMatrix(matrix) :
    if not matrix or not len(matrix):
        return
 
    (rows, cols) = (len(matrix), len(matrix[0]))
 
    for i in range(rows):
        for j in range(cols):
            if matrix[i][j] == 0:
                changeRowColumn(matrix, i, j)
 
    for i in range(rows):
        for j in range(cols):
            if (matrix[i][j] == -1) :
                matrix[i][j] = 0

def printMatrix( matrix) :
    (rows, cols) = (len(matrix), len(matrix[0]))
    
    for i in range(rows):
        for j in range(cols):
            print(str(matrix[i][j]) + " ", end ="")
        print("\n", end ="")
        
    # for row in matrix:
        # print(row)
    
matrix = [[1, 1, 0, 1, 1, 1], 
          [1, 1, 1, 1, 1, 1], 
          [1, 1, 0, 1, 1, 1], 
          [1, 1, 1, 1, 1, 1], 
          [1, 0, 1, 1, 1, 1]]
        
changeBinaryMatrix(matrix)

printMatrix(matrix)




'''
run:

0 0 0 0 0 0 
1 0 0 1 1 1 
0 0 0 0 0 0 
1 0 0 1 1 1 
0 0 0 0 0 0 

'''

 



answered Jan 22, 2024 by avibootz
...