Assigning to Variables and Matrices

Be sure to read the indexing page first.

Assigning a matrix to a variable can be done using the = operator.

>> A = [1 2 3; 3 5 2; 3 2 5]

A =

     1     2     3
     3     5     2
     3     2     5

To change one entry in a matrix, assign to the indexed value:

>> A(1,3) = 3.225

A =

    1.0000    2.0000    3.2250
    3.0000    5.0000    2.0000
    3.0000    2.0000    5.0000

If a matrix is not assigned, a sufficiently large matrix is generated.

>> B(3,5) = 2

B =

     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     2

If a matrix is assigned, but does not contain the element, the matrix is made sufficiently large.

>> B(5,5) = 3

B =

     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     2
     0     0     0     0     0
     0     0     0     0     3

You can assign to a block within a matrix. If the right hand side is a scalar, all values within that block are assigned that value. If the right hand side is a matrix, it must have the same dimensions of the block you are assigning to. The matrix is automatically enlarged if you index outside the matrix.

>> A = [1:5; 2:6; 3:7]

A =

     1     2     3     4     5
     2     3     4     5     6
     3     4     5     6     7

>> A(1:4, 5) = 1

A =

     1     2     3     4     1
     2     3     4     5     1
     3     4     5     6     1
     0     0     0     0     1

>> A([1 3], [1 3:4]) = [-1 -2 -3; -4 -5 -6]

    -1     2    -2    -3     1
     2     3     4     5     1
    -4     4    -5    -6     1
     0     0     0     0     1

The colon and end can also be used to denote a row:

>> A(:, end-1) = 2

    -1     2    -2     2     1
     2     3     4     2     1
    -4     4    -5     2     1
     0     0     0     2     1