f0145d386115dd6dba5671190640bd53558c507e
[scilab.git] / scilab / modules / elementary_functions / help / ja_JP / setoperations / unique.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) 2008 - INRIA
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2017 - 2019 - 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:ns5="http://www.w3.org/1999/xhtml"
18           xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19           xmlns:scilab="http://www.scilab.org" xml:id="unique" xml:lang="ja">
20     <refnamediv>
21         <refname>unique</refname>
22         <refpurpose>ベクトルまたは行列のユニークなな要素を展開</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>呼び出し手順</title>
26         <synopsis>
27             [N, km, kn, nb] = unique(M)
28             [N, km, kn, nb] = unique(M, orient)
29             [N, km, kn, nb] = unique(.., "keepOrder")
30             [N, km, kn, nb] = unique(.., "uniqueNan")
31         </synopsis>
32     </refsynopsisdiv>
33     <refsection role="parameters">
34         <title>引数</title>
35         <variablelist>
36             <varlistentry>
37                 <term>M</term>
38                 <listitem>
39                     <para>数値または文字列のベクトルまたは行列</para>
40                 </listitem>
41             </varlistentry>
42             <varlistentry>
43                 <term>orient</term>
44                 <listitem>
45                     <para>フラグで以下の値のどれかとなる : 1 または "r", 2 または "c".
46                         It can't be used if <varname>M</varname> is an hypermatrix.
47                     </para>
48                 </listitem>
49             </varlistentry>
50             <varlistentry>
51                 <term>N</term>
52                 <listitem>
53                     <para>
54                       <itemizedlist>
55                         <listitem>
56                             <para>
57                               If <varname>orient</varname> is not used: Vector of extracted
58                               <varname>M</varname> components sorted in ascending order.
59                               If <varname>M</varname> is a row vector, <varname>N</varname> is also
60                               a row vector. In all other <varname>M</varname> cases,
61                               <varname>N</varname> is a matrix or a column vector.
62                             </para>
63                         </listitem>
64                         <listitem>
65                           If <varname>orient</varname> is used: Matrix of extracted
66                           <varname>M</varname> rows or columns, sorted in lexicographic ascending order.
67                         </listitem>
68                       </itemizedlist>
69                     </para>
70                 </listitem>
71             </varlistentry>
72             <varlistentry>
73                 <term>k</term>
74                 <listitem>
75                     <para>
76                       Vector of indices of first encountered occurences, such that
77                       <literal>N(i) = M(k(i))</literal> or <literal>N(i,:) = M(k(i),:)</literal>
78                       or <literal>N(:,i) = M(:,k(i))</literal>.
79                     </para>
80                     <para>
81                         <varname>k</varname> is a row if <varname>M</varname> is a row or if
82                         <literal>orient="c"</literal> is used. Otherwise it's a column.
83                     </para>
84                 </listitem>
85             </varlistentry>
86             <varlistentry>
87                 <term>kn</term>
88                 <listitem>
89                     Not yet implemented.
90                     Vector of indices of first encountered occurrences, such that
91                     <literal>M(i) = N(kn(i))</literal> or <literal>M(i,:) = N(kn(i),:)</literal>
92                     or <literal>M(:,i) = N(:,kn(i))</literal>.
93                     <para/>
94                 </listitem>
95             </varlistentry>
96             <varlistentry>
97                 <term>nb</term>
98                 <listitem>
99                     <para>
100                       Vector of integers > 0, with the same <varname>k</varname> shape:
101                       Numbers of occurences in <varname>M</varname> of respective unduplicated
102                       entities (components, rows, columns) returned in <varname>N</varname>.
103                     </para>
104                 </listitem>
105             </varlistentry>
106         </variablelist>
107     </refsection>
108     <refsection role="description">
109         <title>説明</title>
110         <para>
111             <literal>unique(M)</literal> は
112             <literal>M</literal>のユニークなエントリを昇順に
113             したものを保持するベクトルを返します.
114         </para>
115         <para>
116             <literal>unique(M,"r")</literal> または
117             <literal>unique(M,1)</literal>は,
118             <literal>M</literal>のユニークな行を
119             辞書式の昇順にして返します.
120         </para>
121         <para>
122             <literal>unique(M,"c")</literal> または
123             <literal>unique(M,2)</literal>は
124             <literal>M</literal>のユニークな列を
125             辞書式の昇順にして返します.
126         </para>
127         <para>
128             <literal>unique(M,.. "keepOrder")</literal> returns <varname>M</varname> unduplicated
129             entries in their original order in <varname>M</varname>.
130             <literal>"keepOrder"</literal> is case-insensitive.
131         </para>
132         <para>
133             <literal>unique(M,.. "uniqueNan")</literal> considers all Nan values as the same one,
134             and unduplicates them. By default, any Nan is different
135             from any other Nan, including itself: <literal>%nan&lt;>%nan</literal> is true, unless
136             <literal>"uniqueNan"</literal> is used. Specifying
137             <literal>"uniqueNan"</literal> is case-insensitive.
138         </para>
139     </refsection>
140     <refsection role="examples">
141         <title>例</title>
142         <para>With some numbers:</para>
143         <programlisting role="example"><![CDATA[
144 M = int8([2  0  2  2  1  1  1  2  1  1  0  1  1  0  1  1
145           0  1  2  0  1  2  2  0  1  1  2  0  1  0  0  0
146           ])
147 [u, km] = unique(M)
148 [uc, kmc] = unique(M, "c")
149  ]]></programlisting>
150     <screen><![CDATA[
151 --> M
152  M =
153   2  0  2  2  1  1  1  2  1  1  0  1  1  0  1  1
154   0  1  2  0  1  2  2  0  1  1  2  0  1  0  0  0
155
156 --> [u, km] = unique(M)
157  u  =
158   0
159   1
160   2
161
162  km  =
163    2.
164    4.
165    1.
166
167 --> [uc, kmc] = unique(M, "c")
168  uc  =
169   0  0  0  1  1  1  2  2
170   0  1  2  0  1  2  0  2
171
172  kmc  =
173    14.   2.   11.   12.   5.   6.   1.   3.
174 ]]></screen>
175         <para>With complex numbers:</para>
176         <programlisting role="example"><![CDATA[
177 i = %i;
178 c = [1+i, 1-i, -i, i, -i, 1+i]
179 [u, k] = unique(c)
180 [uc, kc] = unique(c, "c")
181  ]]></programlisting>
182     <screen><![CDATA[
183 --> c = [1+i, 1-i, -i, i, -i, 1+i]
184  c  =
185    1. + i     1. - i  -i    i   -i    1. + i
186
187 --> [u, k] = unique(c)
188  u  =
189   -i    i    1. - i   1. + i
190
191  k  =
192    3.   4.   2.   1.
193 ]]></screen>
194
195     <para>With some texts:</para>
196         <programlisting role="example"><![CDATA[
197 t = ["BA" "BB" "AB" "BA" "AB" "BA" "AB" "AB" "BA" "AA" "AB" "BA" "BA" "BA" "AA"
198      "AA" "AB" "AA" "AA" "BB" "BB" "BB" "BA" "AB" "AB" "BB" "BB" "AB" "AB" "AA"
199     ]
200 u = unique(t)'
201 [u, kt, nb] = unique(t(1,:))
202 [u, kt] = unique(t(1,:), "keepOrder")  // Keeping the original order of row#1 elements
203 [uc, ktc, kuc, nb] = unique(t, "c")
204 [uc, ktc, kuc, nb] = unique(t, "c", "keepOrder")  // Keeping the original order of columns
205  ]]></programlisting>
206     <screen><![CDATA[
207 --> t = ["BA" "BB" "AB" "BA" "AB" "BA" "AB" "AB" "BA" "AA" "AB" "BA" "BA" "BA" "AA"
208   >      "AA" "AB" "AA" "AA" "BB" "BB" "BB" "BA" "AB" "AB" "BB" "BB" "AB" "AB" "AA"
209   >     ]
210  t  =
211 !BA  BB  AB  BA  AB  BA  AB  AB  BA  AA  AB  BA  BA  BA  AA  !
212 !AA  AB  AA  AA  BB  BB  BB  BA  AB  AB  BB  BB  AB  AB  AA  !
213
214 --> u = unique(t)'
215  u  =
216 !AA  AB  BA  BB  !
217
218 --> [u, kt, ku, nb] = unique(t(1,:))
219  u  =
220 !AA  AB  BA  BB  !
221
222  kt  =
223    10.   3.   1.   2.
224
225  nb  =
226    2.   5.   7.   1.
227
228 --> [u, kt] = unique(t(1,:), "keepOrder")  // Keeping the original order
229  u  =
230 !BA  BB  AB  AA  !
231
232  kt  =
233    1.   2.   3.   10.
234
235 --> [uc, ktc, kuc, nb] = unique(t, "c")
236  uc  =
237 !AA  AA  AB  AB  AB  BA  BA  BA  BB  !             Sorted columns
238 !AA  AB  AA  BA  BB  AA  AB  BB  AB  !
239
240  ktc  =
241    15.   10.   3.   8.   5.   1.   9.   6.   2.
242
243  nb  =
244    1.   1.   1.   1.   3.   2.   3.   2.   1.
245
246 --> [uc, kc, nb] = unique(t, "c", "keepOrder")  // Keeping the original order
247  uc  =
248 !BA  BB  AB  AB  BA  AB  BA  AA  AA  !
249 !AA  AB  AA  BB  BB  BA  AB  AB  AA  !
250
251  kc  =
252    1.   2.   3.   5.   6.   8.   9.   10.   15.
253
254  nb  =
255    2.   1.   1.   3.   2.   1.   3.   1.   1.
256 ]]></screen>
257         <para/>
258         <para>With Nan (and Inf) values. "uniqueNan" option:</para>
259         <programlisting role="example"><![CDATA[
260 M = [2  2  %nan  1     2  0     1  %nan  0    %nan
261      1  0  1     %nan  0  %inf  0  1     %inf 1
262     ];
263 [v, km, kv, n] = unique(M); v',n'
264 [v, km, kv, n] = unique(M, "uniqueNan"); v',n'
265 unique(M, "c")
266 [v, kmc, kvc, n] = unique(M, "c", "uniqueNan")
267  ]]></programlisting>
268     <screen><![CDATA[
269 --> M
270  M  =
271    2.   2.   Nan   1.    2.   0.    1.   Nan   0.    Nan
272    1.   0.   1.    Nan   0.   Inf   0.   1.    Inf   1.
273
274 --> [v, km, kv, n] = unique(M); v',n'
275  ans  =
276    0.   1.   2.   Inf   Nan   Nan   Nan   Nan
277
278  ans  =
279    5.   6.   3.   2.   1.   1.   1.   1.
280
281 --> [v, km, kv, n] = unique(M, "uniqueNan"); v',n'
282  ans  =
283    0.   1.   2.   Inf   Nan
284
285  ans  =
286    5.   6.   3.   2.   4.
287
288 --> unique(M, "c")
289  ans  =
290    0.    1.   1.    2.   2.   Nan   Nan   Nan
291    Inf   0.   Nan   0.   1.   1.    1.    1.
292
293 --> [v, kmc, kvc, n] = unique(M, "c", "uniqueNan")
294  v  =
295    0.    1.   1.    2.   2.   Nan
296    Inf   0.   Nan   0.   1.   1.
297
298  kmc  =
299    6.   7.   4.   2.   1.   3.
300
301  n  =
302    2.   1.   1.   2.   1.   3.
303 ]]></screen>
304     </refsection>
305     <refsection role="see also">
306         <title>参照</title>
307         <simplelist type="inline">
308             <member>
309                 <link linkend="members">members</link>
310             </member>
311             <member>
312                 <link linkend="gsort">gsort</link>
313             </member>
314             <member>
315                 <link linkend="vectorfind">vectorfind</link>
316             </member>
317             <member>
318                 <link linkend="grep">grep</link>
319             </member>
320             <member>
321                 <link linkend="union">union</link>
322             </member>
323             <member>
324                 <link linkend="intersect">intersect</link>
325             </member>
326         </simplelist>
327     </refsection>
328     <refsection role="history">
329         <title>履歴</title>
330         <revhistory>
331             <revision>
332                 <revnumber>6.0.2</revnumber>
333                 <revdescription>
334                     unique() can now be used to unduplicate complex numbers.
335                 </revdescription>
336             </revision>
337             <revision>
338                 <revnumber>6.1.0</revnumber>
339                 <revdescription>
340                     <itemizedlist>
341                         <listitem>
342                             "keepOrder" and "uniqueNan" options introduced.
343                         </listitem>
344                         <listitem>
345                             Fourth output argument <literal>nb</literal> introduced.
346                         </listitem>
347                     </itemizedlist>
348                 </revdescription>
349             </revision>
350         </revhistory>
351     </refsection>
352 </refentry>