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 ]
Bruno Luong

Posts: 8,813
Registered: 7/26/08
Re: Extracting particular row of a matrix based on specific condition
Posted: Jan 1, 2014 4:50 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

dpb <none@non.net> wrote in message <l9ulhp$sf7$1@speranza.aioe.org>...
> 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...


You are write, it learns me not to do things too fast.

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

> ans =
> 0.1300 0.0010 0.8900
> 0.1200 0.0050 0.1000

> >>
>

Should use the first argument of ismember() rather than recomputing it. Also OP requires the original order, so sort() will fix the order:

[t, iB] = ismember(A,B(:,1));
B(sort(iB(i)),2:end)

% Bruno



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.