1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: FIND Find Non-zero Elements of An Array</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FreeMat
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('array_find.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">FIND Find Non-zero Elements of An Array </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_array.html">Array Generation and Manipulations</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>Returns a vector that contains the indicies of all non-zero elements in an array. The usage is </p>
<pre class="fragment"> y = find(x)
</pre><p> The indices returned are generalized column indices, meaning that if the array <code>x</code> is of size <code>[d1,d2,...,dn]</code>, and the element <code>x(i1,i2,...,in)</code> is nonzero, then <code>y</code> will contain the integer </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ i_1 + (i_2-1) d_1 + (i_3-1) d_1 d_2 + \dots \]" src="form_3.png"/>
</p>
<p> The second syntax for the <code>find</code> command is </p>
<pre class="fragment"> [r,c] = find(x)
</pre><p> which returns the row and column index of the nonzero entries of <code>x</code>. The third syntax for the <code>find</code> command also returns the values </p>
<pre class="fragment"> [r,c,v] = find(x).
</pre><p> Note that if the argument is a row vector, then the returned vectors are also row vectors. This form is particularly useful for converting sparse matrices into IJV form.</p>
<p>The <code>find</code> command also supports some additional arguments. Each of the above forms can be combined with an integer indicating how many results to return: </p>
<pre class="fragment"> y = find(x,k)
</pre><p> where <code>k</code> is the maximum number of results to return. This form will return the first <code>k</code> results. You can also specify an optional flag indicating whether to take the first or last <code>k</code> values: </p>
<pre class="fragment"> y = find(x,k,'first')
y = find(x,k,'last')
</pre><p> in the case of the <code>'last'</code> argument, the last <code>k</code> values are returned. </p>
<h1><a class="anchor" id="Example"></a>
Example</h1>
<p>Some simple examples of its usage, and some common uses of <code>find</code> in FreeMat programs.</p>
<pre class="fragment">--> a = [1,2,5,2,4];
--> find(a==2)
ans =
2 4
</pre><p>Here is an example of using find to replace elements of <code>A</code> that are <code>0</code> with the number <code>5</code>.</p>
<pre class="fragment">--> A = [1,0,3;0,2,1;3,0,0]
A =
1 0 3
0 2 1
3 0 0
--> n = find(A==0)
n =
2
4
6
9
--> A(n) = 5
A =
1 5 3
5 2 1
3 5 5
</pre><p>Incidentally, a better way to achieve the same concept is:</p>
<pre class="fragment">--> A = [1,0,3;0,2,1;3,0,0]
A =
1 0 3
0 2 1
3 0 0
--> A(A==0) = 5
A =
1 5 3
5 2 1
3 5 5
</pre><p>Now, we can also return the indices as row and column indices using the two argument form of <code>find</code>:</p>
<pre class="fragment">--> A = [1,0,3;0,2,1;3,0,0]
A =
1 0 3
0 2 1
3 0 0
--> [r,c] = find(A)
r =
1
3
2
1
2
c =
1
1
2
3
3
</pre><p>Or the three argument form of <code>find</code>, which returns the value also:</p>
<pre class="fragment">--> [r,c,v] = find(A)
r =
1
3
2
1
2
c =
1
1
2
3
3
v =
1
3
2
3
1
</pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_array.html">Array Generation and Manipulations</a></li>
<li class="footer">Generated on Thu Jul 25 2013 18:58:11 for FreeMat by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
</ul>
</div>
</body>
</html>
|