1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) 2008 - INRIA
5 * Copyright (C) 2017, 2018 - Samuel GOUGEON
7 * Copyright (C) 2012 - 2016 - Scilab Enterprises
9 * This file is hereby licensed under the terms of the GNU GPL v2.0,
10 * pursuant to article 5.3.4 of the CeCILL v.2.1.
11 * This file was originally licensed under the terms of the CeCILL v2.1,
12 * and continues to be available under such terms.
13 * For more information, see the COPYING file which you should have received
14 * along with this program.
17 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
18 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
19 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
20 xmlns:scilab="http://www.scilab.org" xml:id="unique" xml:lang="ru">
22 <refname>unique</refname>
23 <refpurpose>удалить все повторяющиеся компоненты из вектора или матрицы</refpurpose>
26 <title>Синтаксис</title>
33 <refsection role="parameters">
34 <title>Аргументы</title>
39 <para>вектор или матрица чисел или строк</para>
45 <para>флаг с возможными значениями: 1 или "r", 2 или "c".
46 Не может использоваться, если <varname>M</varname> является гиперматрицей.
56 Если <varname>orient</varname> не используется: вектор извлечённых
57 <varname>M</varname> компонентов, сортированных в полядке возрастания.
60 Если <varname>orient</varname> используется: матрица извлечённых
61 <varname>M</varname> строк или столбцов, сортированных в лексикографическом порядке возрастания.
71 Вектор индексов первых встреченных значений, таких что
72 <literal>N(i) = M(k(i))</literal> или <literal>N(i,:) = M(k(i),:)</literal>
73 или <literal>N(:,i) = M(:,k(i))</literal>.
79 <refsection role="description">
80 <title>Описание</title>
82 <literal>unique(M)</literal> возвращает вектор, который содержит уникальные элементы
83 <literal>M</literal> в порядке возрастания.
86 <literal>unique(M,"r")</literal> или <literal>unique(M,1)</literal> возвращает
87 уникальные строки <literal>M</literal> в лексикографическом порядке возрастания.
90 <literal>unique(M,"c")</literal> или <literal>unique(M,2)</literal> возвращает
91 уникальные столбцы <literal>M</literal> в лексикографическом порядке возрастания.
94 Извлечённые компоненты, строки или столбцы могут быть пересортированны в их исходном порядке через
95 сортировку с помощью <varname>k</varname>. См. первый пример.
98 <refsection role="examples">
99 <title>Примеры</title>
100 <para>With some numbers:</para>
101 <programlisting role="example"><![CDATA[
102 M = int8([2 0 2 2 1 1 1 2 1 1 0 1 1 0 1 1
103 0 1 2 0 1 2 2 0 1 1 2 0 1 0 0 0
106 [uc, kc] = unique(M, "c")
108 // Получим недублированные столбцы в исходном порядке:
109 M(:, gsort(kc,"g","i"))
114 2 0 2 2 1 1 1 2 1 1 0 1 1 0 1 1
115 0 1 2 0 1 2 2 0 1 1 2 0 1 0 0 0
117 --> [u, k] = unique(M)
128 --> [uc, kc] = unique(M, "c")
134 14. 2. 11. 12. 5. 6. 1. 3.
136 --> // Получим недублированные столбцы в исходном порядке:
137 --> M(:, gsort(kc,"g","i"))
142 <para>С комплексными числами:</para>
143 <programlisting role="example"><![CDATA[
145 c = [1+i, 1-i, -i, i, -i, 1+i]
147 [uc, kc] = unique(c, "c")
150 --> c = [1+i, 1-i, -i, i, -i, 1+i]
152 1. + i 1. - i -i i -i 1. + i
154 --> [u, k] = unique(c)
162 <para>С текстом:</para>
163 <programlisting role="example"><![CDATA[
164 t = ["AB" "BA" "BA" "BA" "AB" "BA" "AB" "AB" "BB" "AA" "AB" "BA" "BA" "BA" "AA"
165 "AA" "AA" "AB" "AA" "BB" "BB" "BB" "BA" "AB" "AB" "BB" "BB" "AB" "AB" "AA"
168 [uc, kc] = unique(t, "c")
172 !AB BA BA BA AB BA AB AB BB AA AB BA BA BA AA !
173 !AA AA AB AA BB BB BB BA AB AB BB BB AB AB AA !
175 --> [u, k] = unique(t);
188 --> [uc, kc] = unique(t, "c")
190 !AA AA AB AB AB BA BA BA BB !
191 !AA AB AA BA BB AA AB BB AB !
194 15. 10. 1. 8. 5. 2. 3. 6. 9.
197 <refsection role="see also">
198 <title>Смотрите также</title>
199 <simplelist type="inline">
201 <link linkend="members">members</link>
204 <link linkend="gsort">gsort</link>
207 <link linkend="vectorfind">vectorfind</link>
210 <link linkend="grep">grep</link>
213 <link linkend="union">union</link>
216 <link linkend="intersect">intersect</link>
220 <refsection role="history">
221 <title>История</title>
224 <revnumber>6.0.2</revnumber>
226 unique() теперь может использоваться для удаления дубликатов комплексных чисел.