[doc] broken linkend fixed
[scilab.git] / scilab / modules / elementary_functions / help / ru_RU / setoperations / setdiff.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) 2018 - 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="setdiff" xml:lang="ru">
20     <refnamediv>
21         <refname>setdiff</refname>
22         <refpurpose>
23             возвращает элементы или строк или столбцов массива, которые не принадлежат другому массиву
24         </refpurpose>
25     </refnamediv>
26     <refsynopsisdiv>
27         <title>Синтаксис</title>
28         <synopsis>
29             v = setdiff(a, b)
30             v = setdiff(a, b, orien)
31             [v, ka] = setdiff(..)
32         </synopsis>
33     </refsynopsisdiv>
34     <refsection>
35         <title>Аргументы</title>
36         <variablelist>
37             <varlistentry>
38                 <term>a, b</term>
39                 <listitem>
40                     <para>
41                         векторы, матрицы или гиперматрицы вещественных чисел или кодированных
42                         целых чисел или строк. Оба должны иметь одинаковые типы данных (или типы
43                         целых чисел).
44                     </para>
45                     <para>
46                         Если используется опция <literal>orien="r"</literal>, то
47                         <literal>a</literal> и <literal>b</literal> должны иметь одинаковое
48                         количество столбцов. Если используется <literal>orien="c"</literal>, то
49                         они должны иметь одинаковое количество строк.
50                     </para>
51                 </listitem>
52             </varlistentry>
53             <varlistentry>
54                 <term>orien</term>
55                 <listitem>
56                     направленная обработка:
57                     <itemizedlist>
58                         <listitem>
59                             <literal>"r"</literal>: строки из <literal>a</literal> ищутся среди строк в <literal>b</literal>.
60                         </listitem>
61                         <listitem>
62                             <literal>"c"</literal>: столбцы из <literal>a</literal> ищутся среди
63                             столбцов в <literal>b</literal>.
64                         </listitem>
65                         <listitem>
66                             <varname>orien</varname> не указано: элементы из <literal>a</literal>
67                             ищутся среди элементов <literal>b</literal>.
68                         </listitem>
69                     </itemizedlist>
70                 </listitem>
71             </varlistentry>
72             <varlistentry>
73                 <term>v</term>
74                 <listitem>
75                     <itemizedlist>
76                         <listitem>
77                             сортированный вектор из компонентов <literal>a</literal>, которые
78                             отсутствуют в <literal>b</literal>.
79                         </listitem>
80                         <listitem>
81                             <literal>orien="r"</literal>: матрица строк из <literal>a</literal>,
82                             которые отсутствуют в <literal>b</literal>, отсортированный в
83                             лексикографическом порядке.
84                         </listitem>
85                         <listitem>
86                             <literal>orien="c"</literal>: матрица столбцов из
87                             <literal>a</literal>, которые отсутствуют в <literal>b</literal>,
88                             отсортированный в лексикографическом порядке.
89                         </listitem>
90                     </itemizedlist>
91                 </listitem>
92             </varlistentry>
93             <varlistentry>
94                 <term>ka</term>
95                 <listitem>
96                     <para>
97                         вектор линейный индексов выбранных элементов, строк, столбцов из
98                         <literal>a</literal> таких, что
99                         <itemizedlist>
100                             <listitem>
101                                 <literal>v = a(ka)</literal> либо
102                             </listitem>
103                             <listitem>
104                                 <literal>v = a(ka,:)</literal> (<literal>orien="r"</literal>) либо
105                             </listitem>
106                             <listitem>
107                                 <literal>v = a(:,ka)</literal> (<literal>orien="c"</literal>)
108                             </listitem>
109                         </itemizedlist>
110                     </para>
111                 </listitem>
112             </varlistentry>
113         </variablelist>
114     </refsection>
115     <refsection>
116         <title>Описание</title>
117         <para>
118             <literal>setdiff(a, b,..)</literal> вычисляет и возвращает элементы либо строк либо
119             столбцов из <literal>a</literal> которые ОТСУТСТВУЮТ в <literal>b</literal>.
120         </para>
121         <para>
122             Все дупликаты (элементы или строк или столбцов) удаляются из <literal>a</literal> и
123             из <literal>b</literal> перед обработкой.
124         </para>
125         <para>
126             Если <literal>a</literal> - гиперматрица и используется опция <literal>"r"</literal>,
127             то перед обработкой <literal>a</literal> заменяется матрицей, состоящией из строк по
128             всем своим более высоким размерностям. То же самое и в случае, если
129             <literal>b</literal> является гиперматрицей. Если исползуется опция
130             <literal>"c"</literal>, то <literal>a</literal> или/и <literal>"b"</literal>
131             заменяются соответствующими матрицами, состоящими из всех своих столбцов.
132         </para>
133         <para>
134             Формат результатов представлен в следующей таблице, в соответствии с формой
135             <literal>a</literal> и опцией <literal>orien</literal>. Во всех случаях, если все элементы <literal>a</literal> находятся в <literal>b</literal>, возвращается
136             <literal>[]</literal> для <literal>v</literal> как для <literal>ka</literal>:
137             <table>
138                 <tr>
139                     <th align="right">orien →</th>
140                     <td colspan="2" align="center">
141                         <emphasis role="bold">отсутствует</emphasis>
142                     </td>
143                     <td colspan="2" align="center">
144                         <emphasis role="bold">"r"</emphasis>
145                     </td>
146                     <td colspan="2" align="center">
147                         <emphasis role="bold">"c"</emphasis>
148                     </td>
149                 </tr>
150                 <tr>
151                     <th>a ↓</th><th>v</th><th>ka</th><th>v</th><th>ka</th><th>v</th><th>ka</th>
152                 </tr>
153                 <tr>
154                     <td align="right">
155                         <emphasis role="bold">строка</emphasis>
156                     </td>
157                     <td>cтр</td><td>cтр</td>
158                     <td>cтр</td><td>скал</td>
159                     <td>cтр</td><td>cтр</td>
160                 </tr>
161                 <tr>
162                     <td align="right">
163                         <emphasis role="bold">столбец</emphasis>
164                     </td>
165                     <td>cтлб</td><td>cтлб</td>
166                     <td>cтлб</td><td>cтлб</td>
167                     <td>cтлб</td><td>скал</td>
168                 </tr>
169                 <tr>
170                     <td align="right">
171                         <emphasis role="bold">матрица</emphasis>
172                     </td>
173                     <td>cтлб</td><td>cтлб</td>
174                     <td>матр</td><td>cтлб</td>
175                     <td>матр</td><td>cтр</td>
176                 </tr>
177                 <tr>
178                     <td align="right">
179                         <emphasis role="bold">гиперматрица</emphasis>
180                     </td>
181                     <td>cтлб</td><td>cтлб</td>
182                     <td>матр</td><td>cтлб</td>
183                     <td>матр</td><td>cтр</td>
184                 </tr>
185                 <tr align="center">
186                     <td align="right">
187                         <emphasis role="bold">скаляр</emphasis>
188                     </td>
189                     <td>скал</td><td>скал</td>
190                     <td>скал</td><td>скал</td>
191                     <td>скал</td><td>скал</td>
192                 </tr>
193             </table>
194         </para>
195         <para>
196             <literal>v</literal> и <literal>ka</literal> становятся пустыми
197             <literal>[]</literal>, если <literal>a</literal> пуста (либо <literal>b</literal>), или все элементы <literal>a</literal> находятся в <literal>b</literal>.
198         </para>
199     </refsection>
200     <refsection>
201         <title>Примеры</title>
202         <para>
203             <emphasis role="bold">Пример №1:</emphasis>
204         </para>
205         <programlisting role="example"><![CDATA[
206 a = grand(1, 10,"uin", 0, 9)
207 b = grand(2, 4, "uin", 0, 9)
208 [d, k] = setdiff(a, b);
209 d, k
210  ]]></programlisting>
211         <screen><![CDATA[
212 --> a = grand(1, 10,"uin", 0, 9)
213  a  =
214    2.   2.   4.   5.   4.   1.   9.   5.   8.   3.
215 --> b = grand(2, 4, "uin", 0, 9)
216  b  =
217    5.   0.   9.   9.
218    5.   6.   0.   4.
219 --> [d, k] = setdiff(a, b);
220 --> d, k
221  d  =
222    1.   2.   3.   8.
223  k  =
224    6.   1.   10.   9.
225  ]]></screen>
226         <para>
227             <emphasis role="bold">Пример №2: постолбцовая обработка</emphasis>
228         </para>
229         <programlisting role="example"><![CDATA[
230 a = grand(2, 7,"uin", 0, 3)
231 b = grand(2, 10, "uin", 0, 3)
232 [d, k] = setdiff(a, b, "c");
233 d, k
234  ]]></programlisting>
235         <screen><![CDATA[
236 --> a = grand(2, 7,"uin", 0, 3)
237  a  =
238    0.   1.   0.   2.   3.   0.   2.
239    2.   2.   2.   1.   0.   1.   2.
240 --> b = grand(2, 10, "uin", 0, 3)
241  b  =
242    1.   1.   3.   1.   1.   1.   3.   0.   2.   0.
243    3.   3.   2.   2.   0.   0.   1.   0.   1.   0.
244 --> [d, k] = setdiff(a, b, "c");
245 --> d, k
246  d  =
247    0.   0.   2.   3.
248    1.   2.   2.   0.
249  k  =
250    6.   1.   7.   5.
251  ]]></screen>
252         <para>
253             <emphasis role="bold">Пример №3: с текстом</emphasis>
254         </para>
255         <programlisting role="example"><![CDATA[
256 v1 = tokens("ab  ca  ba  bb  ca  cb  ba  aa  cc  bc  ac  aa")'
257 v2 = tokens("cc  ac  ca  bb  ac  bc  ab")'
258 [r, k] = setdiff(v1, v2);
259 r, k
260 ]]></programlisting>
261         <screen><![CDATA[
262 --> v1 = tokens("ab  ca  ba  bb  ca  cb  ba  aa  cc  bc  ac  aa")'
263  v1  =
264 !ab  ca  ac  bb  ca  cb  ba  aa  cc  bc  ac  aa  !
265 --> v2 = tokens("cc  ac  ca  bb  ac  bc  ab")'
266  v2  =
267 !cc  ac  ca  bb  ac  bc  ab  !
268 --> [r, k] = setdiff(v1, v2);
269 --> r, k
270  r  =
271 !aa  ba  cb  !
272  k  =
273    8.   3.   6.
274 ]]></screen>
275     </refsection>
276     <refsection role="see also">
277         <title>Смотрите также</title>
278         <simplelist type="inline">
279             <member>
280                 <link linkend="unique">unique</link>
281             </member>
282             <member>
283                 <link linkend="union">union</link>
284             </member>
285             <member>
286                 <link linkend="members">members</link>
287             </member>
288             <member>
289                 <link linkend="vectorfind">vectorfind</link>
290             </member>
291         </simplelist>
292     </refsection>
293     <refsection role="history">
294         <title>История</title>
295         <revhistory>
296             <revision>
297                 <revnumber>&lt; 5.0</revnumber>
298                 <revdescription>
299                     Функция введена.
300                 </revdescription>
301             </revision>
302             <revision>
303                 <revnumber>6.0.2</revnumber>
304                 <revdescription>
305                     Добавлены опции "r" | "c", включая гиперматрицы.
306                 </revdescription>
307             </revision>
308         </revhistory>
309     </refsection>
310 </refentry>