# Index notation matlab for 2D array

Gold Member

## The Attempt at a Solution

Hello,

I am having some confusion over the notation used in matlab. I don't really know what they mean

Code:
  A = [1:3; 4:6; 7:9]

A =

1     2     3
4     5     6
7     8     9

Code:
A(1:2, 1:2)

ans =

1     2
4     5
I clearly see that this is giving me the 1st row, 2nd column and 2nd row, 2nd column. I don't see how (1:2, 1:2) signifies that though.

Code:
 A([3, 1], [3, 1])

ans =

9     7
3     1
similarly, how is this one showing the 3rd row, 3rd column and 1st row, 1st column backwards? What does the [3, 1], [1, 3] mean?

#### Attachments

• 2D arrays indexing.jpg
27 KB · Views: 507
Last edited:

DrClaude
Mentor
Code:
A(1:2, 1:2)

ans =

1     2
4     5
I clearly see that this is giving me the 1st row, 2nd column and 2nd row, 2nd column. I don't see how (1:2, 1:2) signifies that though.
It defines the subset of an array. Say you want the first column of the matrix, then you write
Code:
A(1:3,1)
ans =

1
4
7
which means "take rows 1 to 3 for column 1". This can also be achieved using A(:,1), which means "take all rows for column 1". A(1:2,1:2) means "take rows 1 to 2 and columns 1 to 2".

Code:
 A([3, 1], [3, 1])

ans =

9     7
3     1
similarly, how is this one showing the 3rd row, 3rd column and 1st row, 1st column backwards? What does the [3, 1], [1, 3] mean?
The notation [3, 1] defines a row vector. What A([a, b], [c, d]) does is that it makes a 2x2 matrix with elements
A(a,c) A(a,d)
A(b,c) A(b,d)

This also works with longer vectors:
Code:
A([3,1],[2,3,1,2])
ans =

8   9   7   8
2   3   1   2