简体   繁体   中英

Selecting elements in matrix using matlab

My problem is this: I've a matrix, as example

1   2   3 
4   2   6
6   1   8
4   5   4
7   1   5
8   2   0

I wish to extract selected values from the matrix, as example, a vector like this

B = [3 6 0]

selecting third column values when the value in the second column is 2. I tried in different ways, but no one of these works.

用这个 -

B = A(A(:,2)==2,3)' %// Assuming A is your input matrix

If M is your Matrix, you can select the second column using

M(:,2)

Compare it to two to get the lines which contain a 2

M(:,2)==2

And use this logical vector to select your elements from the third column.

M(M(:,2)==2,3)

A little more generally: if you want to select based on a set of values, use ismember to generate the logical index:

>> A(ismember(A(:,2), [2 5]) , 3) %// [2 5]: values you want to find in 2nd col

ans =

     3
     4
     6
     0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM