help-octave
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]