[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