Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Extracting particular row of a matrix based on specific condition
Replies: 14   Last Post: Jan 3, 2014 10:03 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
dpb

Posts: 8,163
Registered: 6/7/07
Re: Extracting particular row of a matrix based on specific condition
Posted: Dec 31, 2013 9:48 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 12/31/2013 2:16 AM, Bruno Luong wrote:
> B(ismember(A,B(:,1)),2:end)

That returns the rows in B for which the indices are found in A, not B,
unfortunately, Bruno. It does get the first one correct as they're both
in position 2, but then it returns fourth row, not first where the last
element of A is found in first column of B...

The previously-posted solution which OP doesn't like of

B(ismember(B(:,1),A),2:end)

gets the right rows but they're in order returned from A which isn't
same order as in B.

A one-liner hasn't occurred to me on this one, yet anyway...best I've
gotten is two--

>> [~,lb]=ismember(A,B(:,1));
>> B(lb(lb>0),2:end)

ans =
0.1300 0.0010 0.8900
0.1200 0.0050 0.1000
>>

'cuz need the second output from ismember() instead of the first to get
the position vector instead of logical with which to rearrange the
output order.

--



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.