Index notation matlab for 2D array

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
gfd43tg
Gold Member
Messages
949
Reaction score
48

Homework Statement


Homework Equations


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
    2D arrays indexing.jpg
    27 KB · Views: 724
Last edited:
Physics news on Phys.org
Maylis said:
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".

Maylis said:
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