[doc] find() page improved
[scilab.git] / scilab / modules / elementary_functions / help / ja_JP / searchandsort / find.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) INRIA
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2020 - Samuel GOUGEON
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17           xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
18           xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
19           xml:lang="ja" xml:id="find">
20     <refnamediv>
21         <refname>find</refname>
22         <refpurpose>論理値ベクトルまたは行列のtrue要素の添え字を見つける</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>呼び出し手順</title>
26         <synopsis>
27             ii = find(x)
28             [i1,i2,..] = find(x)
29             .. = find(x, nmax)
30         </synopsis>
31     </refsynopsisdiv>
32     <refsection>
33         <title>引数</title>
34         <variablelist>
35             <varlistentry>
36                 <term>x</term>
37                 <listitem>
38                     <para>
39                         ブールまたは数値のベクトル、行列、または超行列. ゼロ以外の数値は%Tと見なされます.
40                         スパース行列が受け入れられます.
41                     </para>
42                 </listitem>
43             </varlistentry>
44             <varlistentry>
45                 <term>nmax</term>
46                 <listitem>
47                     <para>返される添え字の最大数を指定する整数.
48                         デフォルト値は"全て"を意味する -1 です.
49                         このオプションは,全ての添え字の探索を避け,処理効率を改善するために
50                         使用できます.
51                     </para>
52                 </listitem>
53             </varlistentry>
54             <varlistentry>
55                 <term>ii</term>
56                 <listitem>
57                     <para>
58                         row vector of linearized indices of %T or non-zero elements, or empty matrix [].
59                     </para>
60                 </listitem>
61             </varlistentry>
62             <varlistentry>
63                 <term>i1, i2, ..</term>
64                 <listitem>
65                     <para>
66                         row vectors of directional indices, or empty matrix []
67                     </para>
68                 </listitem>
69             </varlistentry>
70         </variablelist>
71     </refsection>
72     <refsection>
73         <title>説明</title>
74         <para>
75             <literal>x</literal> が論理値の場合,
76         </para>
77         <para>
78             <literal>ii=find(x)</literal> は<literal>x(i)</literal>が
79             "true"の添字<literal>i</literal>のベクトルを返します.
80             trueとなる要素がみつからない場合,空行列が返されます.
81         </para>
82         <para>
83             <literal>[i1,i2,..]=find(x)</literal> は,
84             <literal>x(i1(n),i2(n),..)</literal>が "true" の
85             添字<literal>i1</literal> (行の場合) および
86             <literal>i2</literal> (列の場合),..のベクトルを返します.
87             trueとなる要素がみつからない場合,
88             <literal>i1</literal>,<literal>i2</literal>, ...の空行列を返します.
89         </para>
90         <para>
91             <literal>x</literal> が標準行列またはハイパー行列の場合,
92             <literal>find(x)</literal>は<literal>find(x&lt;&gt;0)</literal>
93             と解釈されます.
94         </para>
95         <para>
96             <literal>find([])</literal> は <literal>[]</literal>を返します.
97         </para>
98     </refsection>
99     <refsection>
100         <title>例</title>
101         <para>
102             With input booleans:
103         </para>
104         <programlisting role="example"><![CDATA[
105 A = [%F %T %T %F ; %T %F %F %T]
106 find(A)
107 find(A,2)
108       ]]></programlisting>
109     <screen><![CDATA[
110 --> A = [%F %T %T %F ; %T %F %F %T]
111  A  =
112   F T T F
113   T F F T
114
115 --> find(A)
116  ans  =
117    2.   3.   5.   8.
118
119 --> find(A,2)
120  ans  =
121    2.   3.
122 ]]></screen>
123     <para>
124         With input numbers:
125     </para>
126         <programlisting role="example"><![CDATA[
127 B = [0 -1 0 3 ; 0 -1 -0.4 0]
128 find(B)
129 [i, j] = find(B);
130 [i' j']
131       ]]></programlisting>
132     <screen><![CDATA[
133 --> B = [0 -1 0 3 ; 0 -1 -0.4 0]
134  B  =
135    0.  -1.   0.    3.
136    0.  -1.  -0.4   0.
137
138 --> find(B)
139  ans  =
140    3.   4.   6.   7.
141
142 --> [i, j] = find(B);
143 --> [i' j']
144  ans  =
145    1.   2.
146    2.   2.
147    2.   3.
148    1.   4.
149 ]]></screen>
150     <para>
151         With an input hypermatrix of numbers:
152     </para>
153         <programlisting role="example"><![CDATA[
154 E = grand(2,5,2,"uin",1,6)
155 find(E < 4)
156       ]]></programlisting>
157     <screen><![CDATA[
158 --> E = grand(2,5,2,"uin",1,6)
159  E  =
160 (:,:,1)
161    1.   6.   5.   5.   4.
162    6.   5.   3.   4.   4.
163 (:,:,2)
164    2.   4.   3.   6.   5.
165    5.   6.   6.   6.   4.
166
167 --> find(E < 4)
168  ans  =
169    1.   6.   11.   15.
170 ]]></screen>
171     <para>
172          With an input numerical or boolean sparse matrix:
173     </para>
174         <programlisting role="example"><![CDATA[
175 C = [0  3  7  0  9  0
176      0  4  0  0  5  0
177      6  0  1  0  3  8
178     ];
179 C = sparse(C);
180 find(C)
181 find(C, 4)
182
183 // With input boolean sparse
184 D = C > 4
185 full(D)
186 find(D)
187       ]]></programlisting>
188     <screen><![CDATA[
189 --> C = sparse(C);
190 --> find(C)
191  ans  =
192     3.    4.    5.    7.    9.    13.    14.    15.    18.
193
194 -->find(C, 4)
195  ans  =
196     3.    4.    5.    7.
197
198 --> // With input boolean sparse
199 --> D = C > 4
200  D  =
201 (  3,  6) sparse boolean matrix
202 (  1,  3)   T
203 (  1,  5)   T
204 (  2,  5)   T
205 (  3,  1)   T
206 (  3,  6)   T
207
208 --> full(D)
209  ans  =
210   F F T F T F
211   F F F F T F
212   T F F F F T
213
214 -->find(D)
215  ans  =
216     3.    7.    13.    14.    18.
217 ]]></screen>
218     <para>
219         With the result of a boolean element-wise condition on texts
220     </para>
221         <programlisting role="example"><![CDATA[
222 beers = ["Desperados", "Leffe", "Kronenbourg", "Heineken"];
223 find(beers == "Leffe")
224 find(beers == "1664")
225       ]]></programlisting>
226     <screen><![CDATA[
227 --> find(beers == "Leffe")
228  ans  =
229    2.
230
231 --> find(beers == "1664")
232  ans  =
233     []
234 ]]></screen>
235     <para>
236         Addressing selected elements:
237     </para>
238         <programlisting role="example"><![CDATA[
239 // a) Through their linearized indices:
240 H = [ 0  -2  -8  4  -5  -1
241      -2   2  -9  5   0   1
242     ];
243 L = H;
244 L(find(L < 0)) = -10
245
246 // b) Directly through the array of their boolean status:
247 L = H;
248 L(L < 0) = -10
249       ]]></programlisting>
250     <screen><![CDATA[
251 --> // a) Through their linearized indices:
252 --> H = [ 0  -2  -8  4  -5  -1
253   >      -2   2  -9  5   0   1
254   >     ];
255 --> L = H;
256 --> L(find(L < 0)) = -10
257  L  =
258    0.   -10.  -10.   4.  -10.  -10.
259   -10.   2.   -10.   5.   0.    1.
260
261 --> // b) Directly through the array of their boolean status:
262 --> L = H;
263 --> L(L < 0) = -10
264  L  =
265    0.   -10.  -10.   4.  -10.  -10.
266   -10.   2.   -10.   5.   0.    1.
267 ]]></screen>
268     </refsection>
269     <refsection role="see also">
270         <title>参照</title>
271         <simplelist type="inline">
272             <member>
273                 <link linkend="vectorfind">vectorfind</link>
274             </member>
275             <member>
276                 <link linkend="grep">grep</link>
277             </member>
278             <member>
279                 <link linkend="findobj">findobj</link>
280             </member>
281             <member>
282                 <link linkend="boolean">boolean</link>
283             </member>
284         </simplelist>
285     </refsection>
286 </refentry>