625838a99fa614e50bb84c5eb258c06bd2dc3487
[scilab.git] / scilab / modules / elementary_functions / help / ru_RU / matrixoperations / max.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="max" xml:lang="ru">
20     <refnamediv>
21         <refname>max</refname>
22         <refpurpose>максимум</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Синтаксис</title>
26         <synopsis>
27             m = max(A)
28             Col = max(A, 'c')
29             Row = max(A, 'r'|'m')
30             M = max(A1, A2,..., An)
31             M = max(list(A1, A2,..., An))
32             [.., K] = max(..)
33         </synopsis>
34     </refsynopsisdiv>
35     <refsection>
36         <title>Аргументы</title>
37         <variablelist>
38             <varlistentry>
39                 <term>A, A1, ..., An</term>
40                 <listitem>
41                     <para>
42                         скаляры, векторы, матрицы или гиперматрицы кодированных целых чисел или
43                         вещественных чисел в полном или разрежённом формате. Они должны иметь
44                         одинаковые размеры или быть смешанными со скалярами (скаляры,
45                         следовательно, неявно расширяются  до размеров массивов).
46                         Разрежённые массивы не могут смешиваться с полными массивами, за
47                         исключением <emphasis>отрицательных</emphasis> скаляров.
48                     </para>
49                 </listitem>
50             </varlistentry>
51             <varlistentry>
52                 <term>m</term>
53                 <listitem>
54                     <para>
55                         одиночное число = максимум из всех значений элементов <varname>A</varname>.
56                         Всегда в полном формате, даже если <varname>A</varname> является разряжённой.
57                     </para>
58                 </listitem>
59             </varlistentry>
60             <varlistentry>
61                 <term>Col</term>
62                 <listitem>
63                     <para>
64                         вектор-столбец, если <varname>A</varname> является двумерной матрицей или
65                         гиперматрицей размерами <literal>size(A)</literal> с размером
66                         <literal>size(A,2)</literal> равным 1: максимумы по столбцам (для каждой
67                         строки).
68                         Если <varname>A</varname> - разрежённая матрица, то <varname>Col</varname>
69                         тоже разрежённый.
70                     </para>
71                 </listitem>
72             </varlistentry>
73             <varlistentry>
74                 <term>Row</term>
75                 <listitem>
76                     <para>
77                         вектор-строка, если <varname>A</varname>  является двумерной матрицей или
78                         гиперматрицей размерами <literal>size(A)</literal> с размером
79                         <literal>size(A,2)</literal> равным 1: максимумы по строкам (для каждого
80                         стролбца).
81                         Если <varname>A</varname> - разрежённая матрица, то <varname>Row</varname>
82                         тоже разрежённый.
83                     </para>
84                 </listitem>
85             </varlistentry>
86             <varlistentry>
87                 <term>M</term>
88                 <listitem>
89                     <para>
90                         Массив размером = <literal>size(A1)</literal>, такой, что для каждого
91                         <literal>q</literal> <literal>M(q) = max(A1(q),A2(q),..An(q))</literal>.
92                         Если <varname>A</varname>,..,<varname>An</varname> - разрежённые матрицы, то
93                         <varname>M</varname> тоже разрежённый.
94                     </para>
95                 </listitem>
96             </varlistentry>
97             <varlistentry>
98                 <term>K</term>
99                 <listitem>
100                     <para>
101                         Указывает в <varname>A</varname> (первый) найденный максимум.
102                         Когда используется <literal>[m,K]=max(A)</literal>, то
103                         <itemizedlist>
104                             <listitem>
105                                 Если <literal>A</literal> вектор, то <varname>K</varname> - скаляр.
106                             </listitem>
107                             <listitem>
108                                 В противном случае <varname>K</varname> является вектор-строкой
109                                 <literal>[i,j,..]</literal> индексов.
110                             </listitem>
111                         </itemizedlist>
112                     </para>
113                     <para>
114                         Для других синтаксисов <varname>K</varname> имеет форму и размеры, соответствующие
115                         <varname>Col</varname>, <varname>Row</varname> и <varname>M</varname>.
116                     </para>
117                     <para>
118                         Для синтаксиса <literal>[M,K] = max(A1,A2,..,An)</literal> имеем для каждого линейного
119                         индекса <literal>q</literal>:
120                         <literal>[M(q),K(q)] = max([A1(q) A2(q) .. An(q)])</literal>.
121                     </para>
122                     <para>
123                         <warning>
124                             <varname>K</varname> всегда в полном формате, даже когда
125                             <varname>A, A1,..,An</varname> в разрежённом виде. Следовательно, когда
126                             используется синтаксис <literal>[M,K]=max(A1,A2,..)</literal> с огромными,
127                             но разрежёнными матрицами, то это приводит к огромной <emphasis>полной</emphasis>
128                             матрице <varname>K</varname>. Пользователь должен проверить достаточно ли памяти
129                             имеется для этого.
130                         </warning>
131                     </para>
132                 </listitem>
133             </varlistentry>
134         </variablelist>
135     </refsection>
136     <refsection>
137         <title>Описание</title>
138         <para>
139             Для <literal>A</literal> вещественного вектора или матрицы <literal>max(A)</literal> даёт
140             наибольший элемент в <literal>A</literal>.
141         </para>
142         <para>
143             <literal>[m,K]=max(A)</literal> даёт дополнительно индексы первого максимума.
144         </para>
145         <para>
146             Может быть использован второй строковый аргумент <literal>'r'</literal> или
147             <literal>'c'</literal>: <literal>'r'</literal> используется для получения
148             вектор-строки <literal>Row</literal> такой что <literal>Row(j)</literal>
149             содержит максимум <literal>j</literal>-го столбца <literal>A(:,j)</literal>,
150             <literal>K(j)</literal> даёт индекс строки, которая содержит максимум
151             столбца №<literal>j</literal>.
152         </para>
153         <para>
154             <literal>'c'</literal> используется для парной операции по строкам <literal>A</literal>.
155             <literal>'m'</literal> используется для совместимости с Matlab.
156         </para>
157         <para>
158             <literal>[M,K]=max(list(A1,...,An))</literal> является эквивалентным для
159             <literal>[M,K]=max(A1,A2,...,An)</literal>.
160         </para>
161         <note>
162             <itemizedlist>
163                 <listitem>
164                     <literal>max()</literal> игнорирует значения <literal>NaN</literal> (если есть не
165                     только значения <literal>NaN</literal>).
166                 </listitem>
167                 <listitem>
168                     <literal>max([])</literal> возвращает <literal>[]</literal> для значений и индексов.
169                 </listitem>
170             </itemizedlist>
171         </note>
172     </refsection>
173     <refsection>
174         <title>Примеры</title>
175         <programlisting role="example"><![CDATA[
176 [m, k] = max([])
177 [m, k] = max([1 5 ; 3 %nan])
178 [m, k] = max([1 5 ; 3 %nan], 2.5)
179 [m, k] = max([5 -1 1], [1 0 3], [2 1 3])
180 [m, k] = max(list([5 -1 1], [1 0 3], [2 1 3]))
181  ]]></programlisting>
182     <screen><![CDATA[
183 --> [m, k] = max([])
184  m  =
185     []
186  k  =
187     []
188 --> [m, k] = max([1 5 ; 3 %nan])
189  m  =
190    5.
191  k  =
192    1.   2.
193 --> [m, k] = max([1 5 ; 3 %nan], 2.5)
194  m  =
195    2.5   5.
196    3.    2.5
197  k  =
198    2.   1.
199    1.   2.
200 --> [m, k] = max([5 -1 1], [1 0 3], [2 1 3])
201  m  =
202    5.   1.   3.
203  k  =
204    1.   3.   2.
205 ]]></screen>
206         <para>
207             <emphasis role="bold">С опциями "r" или "c"</emphasis>:
208         </para>
209         <programlisting role="example"><![CDATA[
210 A = grand(4,6,"uin",0,30); A(3,4) = %nan
211 [Row, K] = max(A, "r")
212 [Col, K] = max(A, "c")
213  ]]></programlisting>
214     <screen><![CDATA[
215 --> A = grand(4,6,"uin",0,30); A(3,4) = %nan
216  A  =
217    18.   3.    22.   0.    13.   28.
218    16.   20.   25.   6.    10.   1.
219    25.   26.   20.   Nan   2.    21.
220    5.    9.    16.   15.   24.   25.
221 --> [Row, K] = max(A, "r")
222  Row  =
223    25.   26.   25.   15.   24.   28.
224  K  =
225    3.   3.   2.   4.   4.   1.
226 --> [Col, K] = max(A, "c")
227  Col  =
228    28.
229    25.
230    26.
231    25.
232  K  =
233    6.
234    3.
235    2.
236    6.
237  ]]></screen>
238         <para>
239             <emphasis role="bold">С разрежёнными входными данными</emphasis>:
240         </para>
241         <programlisting role="example"><![CDATA[
242 s = sprand(5,4,0.5); k = s~=0; s(k) = round((s(k)-0.5)*10), full(s)
243 [Row, K] = max(s, "r")
244 [Col, K] = max(s, "c")
245 [M, K] = max(s, -1);   [full(s)  ones(s(:,1))*%nan  full(M)]
246 issparse(M)
247 K
248  ]]></programlisting>
249     <screen><![CDATA[
250 --> s = sprand(5,4,0.5); k = s~=0; s(k) = round((s(k)-0.5)*10), full(s)
251  s  =
252 (  5,  4) sparse matrix
253 (  1,  2)    -2.
254 (  1,  3)    -4.
255 (  1,  4)     3.
256 (  2,  1)    -5.
257 (  2,  4)     3.
258 (  3,  2)    -2.
259 (  3,  3)    -4.
260 (  4,  2)     4.
261 (  4,  4)     2.
262 (  5,  2)    -5.
263 (  5,  3)     5.
264 (  5,  4)    -4.
265  ans  =
266    0.  -2.  -4.   3.
267   -5.   0.   0.   3.
268    0.  -2.  -4.   0.
269    0.   4.   0.   2.
270    0.  -5.   5.  -4.
271 --> [Row, K] = max(s, "r")
272  Row  =
273 (  1,  4) sparse matrix
274 (  1,  2)     4.
275 (  1,  3)     5.
276 (  1,  4)     3.
277  K  =
278    1.   4.   5.   1.
279 --> [Col, K] = max(s, "c")
280  Col  =
281 (  5,  1) sparse matrix
282 (  1,  1)     3.
283 (  2,  1)     3.
284 (  4,  1)     4.
285 (  5,  1)     5.
286  K  =
287    4.
288    4.
289    1.
290    2.
291    3.
292 --> [M, K] = max(s, -1);   [full(s)  ones(s(:,1))*%nan  full(M)]
293  ans  =
294    0.  -2.  -4.   3.   Nan   0.  -1.  -1.   3.
295   -5.   0.   0.   3.   Nan  -1.   0.   0.   3.
296    0.  -2.  -4.   0.   Nan   0.  -1.  -1.   0.
297    0.   4.   0.   2.   Nan   0.   4.   0.   2.
298    0.  -5.   5.  -4.   Nan   0.  -1.   5.  -1.
299 --> issparse(M)
300  ans  =
301    1.
302 --> K
303  K  =
304    1.   2.   2.   1.
305    2.   1.   1.   1.
306    1.   2.   2.   1.
307    1.   1.   1.   1.
308    1.   2.   1.   2.
309 ]]> </screen>
310     </refsection>
311     <refsection role="see also">
312         <title>Смотрите также</title>
313         <simplelist type="inline">
314             <member>
315                 <link linkend="min">min</link>
316             </member>
317             <member>
318                 <link linkend="strange">strange</link>
319             </member>
320             <member>
321                 <link linkend="mean">mean</link>
322             </member>
323             <member>
324                 <link linkend="gsort">gsort</link>
325             </member>
326             <member>
327                 <link linkend="find">find</link>
328             </member>
329             <member>
330                 <link linkend="full">full</link>
331             </member>
332         </simplelist>
333     </refsection>
334     <refsection role="history">
335         <title>История</title>
336         <revhistory>
337             <revision>
338                 <revnumber>6.0.2</revnumber>
339                 <revdescription>
340                     Теперь max() действительно работает с разрежёнными матрицами
341                 </revdescription>
342             </revision>
343         </revhistory>
344     </refsection>
345 </refentry>