How to | Update Parts of a Matrix
The Wolfram Language has many matrix operations that support operations such as building, computing, and visualizing matrices. It also has a rich language for picking out parts of matrices and assigning new values to them.

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-nyxrnp

Use [[...]] (the short form of Part) on the left-hand side of an assignment to set an element:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-g3cx29

This shows that the element at position (1, 2) has been updated:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-xemwab

To set an entire row, use one index to specify the row and assign it to the new row:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-brsanq

To set an entire column, select all rows with All and specify the column:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-6tlrvy

To set a submatrix you can use the short form of Span (;;).
First set up a 5×5 matrix of random integers between 0 and 10:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-tct50

The top-left 3×4 matrix highlighted here corresponds to rows 1 through 3 and columns 1 through 4:

Update the highlighted submatrix by using the short form of Span (;;) to specify the relevant span of rows and columns:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-3suhd

Update all elements except the outermost rows and columns (negative indices count from the end):

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-bdqf9

When you update a large matrix you should try to avoid doing this in a loop. If you can use one of the updating techniques to update all elements in one command, this will typically be much faster:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-bdgefy
This is a slow way to update every element in a row:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-h097bx


https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-inmwtu

If you cannot avoid updating a matrix in a loop, you need to take care to avoid extra references to the matrix. Otherwise the matrix will be copied and the loop will not run very fast:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-g0cky1
This takes care to avoid extra references. The loop runs quite fast:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-bbi5p

This makes a copy of the matrix at every step, and the loop does not run very fast:

https://wolfram.com/xid/0g0rvesswmnojoza3p1me2sn58y-j5j8rw
