<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/174277</link>
    <title>MATLAB Central Newsreader - Find a vector in a matrix</title>
    <description>Feed for thread: Find a vector in a matrix</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Wed, 13 Aug 2008 17:41:02 -0400</pubDate>
      <title>Find a vector in a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/174277#448952</link>
      <author>Jonathan</author>
      <description>Is there an easy way to find a vector in a matrix?&lt;br&gt;
&lt;br&gt;
for example&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12    12    12    12    12    12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1 &lt;br&gt;
&lt;br&gt;
i want to identify the row that has [12 12 12 12 12 12]&lt;br&gt;
&lt;br&gt;
Thanks</description>
    </item>
    <item>
      <pubDate>Wed, 13 Aug 2008 18:08:11 -0400</pubDate>
      <title>Re: Find a vector in a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/174277#448962</link>
      <author>Praetorian</author>
      <description>On Aug 13, 11:41=A0am, &quot;Jonathan &quot; &amp;lt;n...@domain.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; Is there an easy way to find a vector in a matrix?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; for example&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; =A0 =A0 =A01 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1&lt;br&gt;
&amp;gt; =A0 =A0 =A01 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1&lt;br&gt;
&amp;gt; =A0 =A0 12 =A0 =A012 =A0 =A012 =A0 =A012 =A0 =A012 =A0 =A012&lt;br&gt;
&amp;gt; =A0 =A0 =A01 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1&lt;br&gt;
&amp;gt; =A0 =A0 =A01 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1 =A0 =A0 1&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; i want to identify the row that has [12 12 12 12 12 12]&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks&lt;br&gt;
&lt;br&gt;
data =3D ones(5, 6);&lt;br&gt;
data(3,:)  =3D 12&lt;br&gt;
find(all(data'=3D=3D12))&lt;br&gt;
&lt;br&gt;
data =3D&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12    12    12    12    12    12&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     1     1     1     1&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
ans =3D&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3</description>
    </item>
    <item>
      <pubDate>Wed, 13 Aug 2008 19:12:07 -0400</pubDate>
      <title>Re: Find a vector in a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/174277#448976</link>
      <author>Dan Hensley</author>
      <description>Jonathan wrote:&lt;br&gt;
&amp;gt; Is there an easy way to find a vector in a matrix?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; for example&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt;     12    12    12    12    12    12&lt;br&gt;
&amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt;      1     1     1     1     1     1 &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; i want to identify the row that has [12 12 12 12 12 12]&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Thanks&lt;br&gt;
&lt;br&gt;
There's a strfind trick to do this.  It's very fast.&lt;br&gt;
&lt;br&gt;
Assuming a is your matrix, and b is your vector,&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;gt;&amp;gt; ind=strfind(reshape(a',1,[]),b)&lt;br&gt;
&lt;br&gt;
Now if you're looking for a specific row, you need to make sure that the &lt;br&gt;
index corresponds to the start of a row:&lt;br&gt;
&lt;br&gt;
ind = ind((ind-1)/size(a,2) == fix((ind-1)/size(a,2)))&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Dan</description>
    </item>
    <item>
      <pubDate>Wed, 13 Aug 2008 20:02:02 -0400</pubDate>
      <title>Re: Find a vector in a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/174277#448989</link>
      <author>Ilya Rozenfeld</author>
      <description>It looks like using &quot;strmatch&quot; would be even easier:&lt;br&gt;
&lt;br&gt;
data =ones(5, 6);&lt;br&gt;
data(3,:) =12;&lt;br&gt;
&lt;br&gt;
x = ones(1,6)*12;&lt;br&gt;
strmatch(x, data)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Dan Hensley &amp;lt;somewhere@over.there&amp;gt; wrote in message &amp;lt;q8-&lt;br&gt;
dnUAG6IN0rD7VnZ2dnUVZ_rXinZ2d@forethought.net&amp;gt;...&lt;br&gt;
&amp;gt; Jonathan wrote:&lt;br&gt;
&amp;gt; &amp;gt; Is there an easy way to find a vector in a matrix?&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; for example&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt; &amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt; &amp;gt;     12    12    12    12    12    12&lt;br&gt;
&amp;gt; &amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt; &amp;gt;      1     1     1     1     1     1 &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; i want to identify the row that has [12 12 12 12 12 12]&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Thanks&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; There's a strfind trick to do this.  It's very fast.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Assuming a is your matrix, and b is your vector,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  &amp;gt;&amp;gt; ind=strfind(reshape(a',1,[]),b)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Now if you're looking for a specific row, you need to &lt;br&gt;
make sure that the &lt;br&gt;
&amp;gt; index corresponds to the start of a row:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ind = ind((ind-1)/size(a,2) == fix((ind-1)/size(a,2)))&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Dan</description>
    </item>
    <item>
      <pubDate>Wed, 13 Aug 2008 21:24:19 -0400</pubDate>
      <title>Re: Find a vector in a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/174277#449004</link>
      <author>Dan Hensley</author>
      <description>Ilya Rozenfeld wrote:&lt;br&gt;
&amp;gt; It looks like using &quot;strmatch&quot; would be even easier:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; data =ones(5, 6);&lt;br&gt;
&amp;gt; data(3,:) =12;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; x = ones(1,6)*12;&lt;br&gt;
&amp;gt; strmatch(x, data)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
It's a matter of performance.  strfind is by far the fastest of the methods.&lt;br&gt;
&lt;br&gt;
Dan&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Dan Hensley &amp;lt;somewhere@over.there&amp;gt; wrote in message &amp;lt;q8-&lt;br&gt;
&amp;gt; dnUAG6IN0rD7VnZ2dnUVZ_rXinZ2d@forethought.net&amp;gt;...&lt;br&gt;
&amp;gt;&amp;gt; Jonathan wrote:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; Is there an easy way to find a vector in a matrix?&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; for example&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;     12    12    12    12    12    12&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;      1     1     1     1     1     1&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;      1     1     1     1     1     1 &lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; i want to identify the row that has [12 12 12 12 12 12]&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; Thanks&lt;br&gt;
&amp;gt;&amp;gt; There's a strfind trick to do this.  It's very fast.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Assuming a is your matrix, and b is your vector,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;  &amp;gt;&amp;gt; ind=strfind(reshape(a',1,[]),b)&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Now if you're looking for a specific row, you need to &lt;br&gt;
&amp;gt; make sure that the &lt;br&gt;
&amp;gt;&amp;gt; index corresponds to the start of a row:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ind = ind((ind-1)/size(a,2) == fix((ind-1)/size(a,2)))&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Dan&lt;br&gt;
&amp;gt; </description>
    </item>
  </channel>
</rss>

