<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578</link>
    <title>MATLAB Central Newsreader - How to find elements of a given value in a matrix?</title>
    <description>Feed for thread: How to find elements of a given value 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>Thu, 25 Dec 2008 18:56:52 -0500</pubDate>
      <title>How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#618817</link>
      <author>juckou</author>
      <description>Dear all,&lt;br&gt;
&lt;br&gt;
I'm just trying to know how many elements in a matrix have a given value. I mean, if I have a matrix A=[1 2 3; 1 2 3; 1 2 3] I want to know the number (or the percentage) of elements that are &quot;1&quot; (3 or the 33,3% in this case).&lt;br&gt;
&lt;br&gt;
Any help?&lt;br&gt;
Thank you very much&lt;br&gt;
&lt;br&gt;
julio</description>
    </item>
    <item>
      <pubDate>Thu, 25 Dec 2008 19:27:28 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#618819</link>
      <author>Nasser Abbasi</author>
      <description>&lt;br&gt;
&quot;juckou&quot; &amp;lt;ja79@hw.ac.uk&amp;gt; wrote in message &lt;br&gt;
news:16525645.1230231468100.JavaMail.jakarta@nitrogen.mathforum.org...&lt;br&gt;
&amp;gt; Dear all,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I'm just trying to know how many elements in a matrix have a given value. &lt;br&gt;
&amp;gt; I mean, if I have a matrix A=[1 2 3; 1 2 3; 1 2 3] I want to know the &lt;br&gt;
&amp;gt; number (or the percentage) of elements that are &quot;1&quot; (3 or the 33,3% in &lt;br&gt;
&amp;gt; this case).&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Any help?&lt;br&gt;
&amp;gt; Thank you very much&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; julio&lt;br&gt;
&lt;br&gt;
&amp;nbsp;numel(find(A==1))/numel(A)&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.3333&lt;br&gt;
&lt;br&gt;
--Nasser </description>
    </item>
    <item>
      <pubDate>Thu, 25 Dec 2008 19:44:02 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#618820</link>
      <author>Donn Shull</author>
      <description>juckou &amp;lt;ja79@hw.ac.uk&amp;gt; wrote in message &amp;lt;16525645.1230231468100.JavaMail.jakarta@nitrogen.mathforum.org&amp;gt;...&lt;br&gt;
&amp;gt; Dear all,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I'm just trying to know how many elements in a matrix have a given value. I mean, if I have a matrix A=[1 2 3; 1 2 3; 1 2 3] I want to know the number (or the percentage) of elements that are &quot;1&quot; (3 or the 33,3% in this case).&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Any help?&lt;br&gt;
&amp;gt; Thank you very much&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; julio&lt;br&gt;
&lt;br&gt;
Hello Julio,&lt;br&gt;
&lt;br&gt;
You will want to use find and numel ie&lt;br&gt;
&lt;br&gt;
&amp;gt;&amp;gt; percent = 100*(numel(find(A==2))/numel(A))&lt;br&gt;
&lt;br&gt;
percent =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;33.3333&lt;br&gt;
&lt;br&gt;
Good Luck,&lt;br&gt;
&lt;br&gt;
Donn</description>
    </item>
    <item>
      <pubDate>Thu, 25 Dec 2008 19:57:00 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#618822</link>
      <author>juckou</author>
      <description>Thank you very much, Nasser&lt;br&gt;
&lt;br&gt;
julio</description>
    </item>
    <item>
      <pubDate>Tue, 30 Dec 2008 01:27:32 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#619224</link>
      <author>Walter Roberson</author>
      <description>juckou wrote:&lt;br&gt;
&lt;br&gt;
&amp;gt; I'm just trying to know how many elements in a matrix have a given value. I mean, if I have a&lt;br&gt;
&amp;gt; matrix A=[1 2 3; 1 2 3; 1 2 3] I want to know the number (or the percentage) of elements that&lt;br&gt;
&amp;gt; are &quot;1&quot; (3 or the 33,3% in this case).&lt;br&gt;
&lt;br&gt;
Others have recommended find. An alternative is:&lt;br&gt;
sum(A(:)==1) / numels(A)&lt;br&gt;
which should be faster than find()&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
.signature note: I am now avoiding replying to unclear or ambiguous postings.&lt;br&gt;
Please review questions before posting them. Be specific. Use examples of what you mean,&lt;br&gt;
of what you don't mean. Specify boundary conditions, and data classes and value&lt;br&gt;
relationships -- what if we scrambled your data or used -Inf, NaN, or complex(rand,rand)?</description>
    </item>
    <item>
      <pubDate>Tue, 30 Dec 2008 05:15:45 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#619235</link>
      <author>ImageAnalyst</author>
      <description>On Dec 25, 1:56=A0pm, juckou &amp;lt;j...@hw.ac.uk&amp;gt; wrote:&lt;br&gt;
&amp;gt; Dear all,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I'm just trying to know how many elements in a matrix have a given value.=&lt;br&gt;
&amp;nbsp;I mean, if I have a matrix A=3D[1 2 3; 1 2 3; 1 2 3] I want to know the nu=&lt;br&gt;
mber (or the percentage) of elements that are &quot;1&quot; (3 or the 33,3% in this c=&lt;br&gt;
ase).&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Any help?&lt;br&gt;
&amp;gt; Thank you very much&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; julio&lt;br&gt;
&lt;br&gt;
------------------------------------&lt;br&gt;
julio:&lt;br&gt;
If you want to know for ALL numbers (e.g. 1, 2, and 3), then you can&lt;br&gt;
use the hist() function.  If you want to know for only one certain&lt;br&gt;
specific number, then you can use the methods the others have given&lt;br&gt;
you.&lt;br&gt;
Regards,&lt;br&gt;
ImageAnalyst</description>
    </item>
    <item>
      <pubDate>Tue, 30 Dec 2008 08:46:01 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#619248</link>
      <author>us</author>
      <description>juckou&lt;br&gt;
&amp;gt; I'm just trying to know how many elements in a matrix have a given value...&lt;br&gt;
&lt;br&gt;
one of the many solutions&lt;br&gt;
&lt;br&gt;
% the data&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m=[&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 -2 pi&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-2 1 -1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 1 pi&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;];&lt;br&gt;
% the engine&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[mu,mx,mx]=unique(m(:));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r=accumarray(mx,m(:),[],@numel);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rp=100*r./numel(m);&lt;br&gt;
% the result&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;disp([mu,r,rp]);&lt;br&gt;
%{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-2                2       22.222&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-1                1       11.111&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1                4       44.444&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.1416           2       22.222&lt;br&gt;
%}&lt;br&gt;
&lt;br&gt;
us</description>
    </item>
    <item>
      <pubDate>Tue, 30 Dec 2008 14:23:02 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#619274</link>
      <author>Yuri Geshelin</author>
      <description>Walter Roberson &amp;lt;roberson@hushmail.com&amp;gt; wrote in message &amp;lt;bOe6l.26641$wV2.14471@newsfe07.iad&amp;gt;...&lt;br&gt;
&lt;br&gt;
&amp;gt; An alternative is:&lt;br&gt;
&amp;gt; sum(A(:)==1) / numels(A)&lt;br&gt;
&amp;gt; which should be faster than find()&lt;br&gt;
&lt;br&gt;
I decided to verify this statement by means of this fragment:&lt;br&gt;
&lt;br&gt;
clear&lt;br&gt;
A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
&lt;br&gt;
tic&lt;br&gt;
for i = 1:1e5&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sum(A(:)==1) / numel(A); &lt;br&gt;
end&lt;br&gt;
Walter_time = toc;&lt;br&gt;
&lt;br&gt;
tic&lt;br&gt;
for i = 1:1e5&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;numel(find(A==1))/numel(A);&lt;br&gt;
end&lt;br&gt;
Nasser_time = toc;&lt;br&gt;
&lt;br&gt;
Walter_time &amp;gt; Nasser_time&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br&gt;
&lt;br&gt;
I was about to write: No Walter, your method takes more time... But then I just swapped the two loops:&lt;br&gt;
&lt;br&gt;
clear&lt;br&gt;
A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
&lt;br&gt;
tic&lt;br&gt;
for i = 1:1e5&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;numel(find(A==1))/numel(A);&lt;br&gt;
end&lt;br&gt;
Nasser_time = toc;&lt;br&gt;
&lt;br&gt;
tic&lt;br&gt;
for i = 1:1e5&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sum(A(:)==1) / numel(A); &lt;br&gt;
end&lt;br&gt;
Walter_time = toc;&lt;br&gt;
&lt;br&gt;
Walter_time &amp;gt; Nasser_time&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;br&gt;
-------------&lt;br&gt;
OK, I thought, I will do it another way:&lt;br&gt;
&lt;br&gt;
clear&lt;br&gt;
A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
for i = 1:1000&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tic, sum(A(:)==1) / numel(A); &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Walter_time = toc; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tic, numel(find(A==1))/numel(A);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Nasser_time = toc; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d(i) = Walter_time &amp;gt; Nasser_time;&lt;br&gt;
end&lt;br&gt;
sum(d==1)/1000&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.9690&lt;br&gt;
&lt;br&gt;
This means that in 96.7% of single passes of the loop Walter's method is slower. But then again, I swapped the lines:&lt;br&gt;
&lt;br&gt;
&amp;gt;&amp;gt; clear&lt;br&gt;
A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
for i = 1:1000&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tic, numel(find(A==1))/numel(A);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Nasser_time = toc; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tic, sum(A(:)==1) / numel(A); &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Walter_time = toc; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d(i) = Walter_time &amp;gt; Nasser_time;&lt;br&gt;
end&lt;br&gt;
sum(d==1)/1000&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.0120&lt;br&gt;
&lt;br&gt;
The result is reverse. It turns out that whichever fragment is executed first, it takes more time. Why is that? How can you really know which method is faster? </description>
    </item>
    <item>
      <pubDate>Tue, 30 Dec 2008 14:54:01 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#619278</link>
      <author>someone </author>
      <description>&quot;Yuri Geshelin&quot; &amp;lt;geshelin@hotmail.com&amp;gt; wrote in message &amp;lt;gjdas6$56h$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Walter Roberson &amp;lt;roberson@hushmail.com&amp;gt; wrote in message &amp;lt;bOe6l.26641$wV2.14471@newsfe07.iad&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; An alternative is:&lt;br&gt;
&amp;gt; &amp;gt; sum(A(:)==1) / numels(A)&lt;br&gt;
&amp;gt; &amp;gt; which should be faster than find()&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I decided to verify this statement by means of this fragment:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; clear&lt;br&gt;
&amp;gt; A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; tic&lt;br&gt;
&amp;gt; for i = 1:1e5&lt;br&gt;
&amp;gt;     sum(A(:)==1) / numel(A); &lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; Walter_time = toc;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; tic&lt;br&gt;
&amp;gt; for i = 1:1e5&lt;br&gt;
&amp;gt;     numel(find(A==1))/numel(A);&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; Nasser_time = toc;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Walter_time &amp;gt; Nasser_time&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ans =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;      1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I was about to write: No Walter, your method takes more time... But then I just swapped the two loops:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; clear&lt;br&gt;
&amp;gt; A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; tic&lt;br&gt;
&amp;gt; for i = 1:1e5&lt;br&gt;
&amp;gt;     numel(find(A==1))/numel(A);&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; Nasser_time = toc;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; tic&lt;br&gt;
&amp;gt; for i = 1:1e5&lt;br&gt;
&amp;gt;     sum(A(:)==1) / numel(A); &lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; Walter_time = toc;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Walter_time &amp;gt; Nasser_time&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ans =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;      0&lt;br&gt;
&amp;gt; -------------&lt;br&gt;
&amp;gt; OK, I thought, I will do it another way:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; clear&lt;br&gt;
&amp;gt; A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
&amp;gt; for i = 1:1000&lt;br&gt;
&amp;gt;     tic, sum(A(:)==1) / numel(A); &lt;br&gt;
&amp;gt;     Walter_time = toc; &lt;br&gt;
&amp;gt;     tic, numel(find(A==1))/numel(A);&lt;br&gt;
&amp;gt;     Nasser_time = toc; &lt;br&gt;
&amp;gt;     d(i) = Walter_time &amp;gt; Nasser_time;&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; sum(d==1)/1000&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ans =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     0.9690&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; This means that in 96.7% of single passes of the loop Walter's method is slower. But then again, I swapped the lines:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;&amp;gt; clear&lt;br&gt;
&amp;gt; A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
&amp;gt; for i = 1:1000&lt;br&gt;
&amp;gt;     tic, numel(find(A==1))/numel(A);&lt;br&gt;
&amp;gt;     Nasser_time = toc; &lt;br&gt;
&amp;gt;     tic, sum(A(:)==1) / numel(A); &lt;br&gt;
&amp;gt;     Walter_time = toc; &lt;br&gt;
&amp;gt;     d(i) = Walter_time &amp;gt; Nasser_time;&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; sum(d==1)/1000&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ans =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     0.0120&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The result is reverse. It turns out that whichever fragment is executed first, it takes more time. Why is that? How can you really know which method is faster? &lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
In my opinion, to begin to see &quot;which method is faster&quot;, A needs to be much larger.  With only a 3X3 matrix the times are probably due more to &quot;start-up&quot; than anything else (as you have shown).  But thats just my opinion, I could be wrong.&lt;br&gt;
&lt;br&gt;
Try inserting the statement:&lt;br&gt;
&lt;br&gt;
A=[1 2 3; 1 2 3; 1 2 3];&lt;br&gt;
n = 1000;   % or larger&lt;br&gt;
A = repmat(A,n,n);&lt;br&gt;
&lt;br&gt;
and see what the times are.</description>
    </item>
    <item>
      <pubDate>Fri, 02 Jan 2009 19:43:41 -0500</pubDate>
      <title>Re: How to find elements of a given value in a matrix?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/241578#619607</link>
      <author>Steven Lord</author>
      <description>&lt;br&gt;
&quot;Walter Roberson&quot; &amp;lt;roberson@hushmail.com&amp;gt; wrote in message &lt;br&gt;
news:bOe6l.26641$wV2.14471@newsfe07.iad...&lt;br&gt;
&amp;gt; juckou wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I'm just trying to know how many elements in a matrix have a given value. &lt;br&gt;
&amp;gt;&amp;gt; I mean, if I have a&lt;br&gt;
&amp;gt;&amp;gt; matrix A=[1 2 3; 1 2 3; 1 2 3] I want to know the number (or the &lt;br&gt;
&amp;gt;&amp;gt; percentage) of elements that&lt;br&gt;
&amp;gt;&amp;gt; are &quot;1&quot; (3 or the 33,3% in this case).&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Others have recommended find. An alternative is:&lt;br&gt;
&amp;gt; sum(A(:)==1) / numels(A)&lt;br&gt;
&amp;gt; which should be faster than find()&lt;br&gt;
&lt;br&gt;
You might also want to compare that with:&lt;br&gt;
&lt;br&gt;
nnz(A(:)==1)/numel(A)&lt;br&gt;
&lt;br&gt;
I don't know if it'll be faster, but it might.&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
Steve Lord&lt;br&gt;
slord@mathworks.com </description>
    </item>
  </channel>
</rss>

