[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: Selecting values from a matrix via indices in another matrix

**From**: |
Thomas Fehér |

**Subject**: |
Re: Selecting values from a matrix via indices in another matrix |

**Date**: |
Tue, 30 Sep 2014 20:14:42 +0200 |

On Tue, 30 Sep 2014 15:28:23 +0200
Stefanie Hasler <address@hidden> wrote:
>* Hello,*
>* *
>* I have two matrices: One 2x100 matrix A containing rows like [20*
>* 200], and one 300x300 matrix B containing a range of values from 0 to*
>* 20.*
>* *
>* Is there an easy way to extract a subset of the data contained in B*
>* as a vector by using the values in A as indices? For example, if*
>* A(1,:) says (20,20), the vector's first entry should be B(20,20).*
>* *
>* Right now I'm using a for-loop, looping through A, and writing the*
>* values I extract from B into a new vector. It works, but it's not*
>* pretty or efficient.*
>* *
>* Basically, I'd like to be able to write something like B(A), but that*
>* does not yield the correct output.*
>* *
>* Any help would be very appreciated!*
>* *
>* Fii*
>* *
This should give the result that you want:
B(sub2ind(size(B),A(1,:),A(2,:)))
The trick is using the linear index of the matrix.
Hope that helps,
Thomas