length(): documents changes for cells and structures arrays
[scilab.git] / scilab / modules / string / help / ru_RU / length.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  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
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" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xml:id="length" xml:lang="ru">
17     <refnamediv>
18         <refname>length</refname>
19         <refpurpose>длина объекта</refpurpose>
20     </refnamediv>
21     <refsynopsisdiv>
22         <title>Синтаксис</title>
23         <synopsis>n = length(M)</synopsis>
24     </refsynopsisdiv>
25     <refsection>
26         <title>Аргументы</title>
27         <variablelist>
28             <varlistentry>
29                 <term>M</term>
30                 <listitem>
31                     <para>
32                         матрица (обычная или полиномиальная или символьных строк) или список.
33                     </para>
34                 </listitem>
35             </varlistentry>
36             <varlistentry>
37                 <term>n</term>
38                 <listitem>
39                     <para>
40                         целое число или матрица целочисленных значений.
41                     </para>
42                 </listitem>
43             </varlistentry>
44         </variablelist>
45     </refsection>
46     <refsection>
47         <title>Описание</title>
48         <para>
49             Для обычной или полиномиальной матрицы <varname>n</varname> является целым числом, равным произведению количества строк и
50             столбцов <varname>M</varname>. (Также корректно и для матрицы
51             логических значений <varname>M</varname>).
52         </para>
53         <para>
54             Для матриц, составленных из символьных строк (и, в частности, для
55             символьной строки), функция <function>length</function> возвращает
56             в <varname>n</varname> длину элементов матрицы символьных строк
57             <varname>M</varname>.
58         </para>
59         <para>
60             Длина списка - это количество элементов в списке (также получается с помощью функции <function>size</function>).
61         </para>
62         <para>
63             Длина cell-массива или массива структур <literal>M</literal> - это количество элементов массива.
64             Это эквиваалентно <literal>size(M, "*")</literal>.
65         </para>
66         <para>
67             Длина матричноориентированного списка (mlist) равна по умолчанию
68             количеству элементов в этом списке, но вы можете перегрузить <function>length</function> (см. пример).
69         </para>
70         <para>
71             <code>length('123')</code> равно <literal>3</literal>.
72             <code>length([1,2;3,4])</code> равно <literal>4</literal>.
73         </para>
74         <para>
75             <warning>
76                 Внимание: <function>length</function> разрежённой матрицы
77                 возвращает максимум размерностей а не произведение
78                 размерностей. (Например: <code>length(sparse(eye(12,2)))</code>
79                 возвращает <code>max(12,2)</code> а не <literal>24</literal>).
80                 Пожалуйста, к разрежённой матрице применяйте
81                 <literal>size(...,'*')</literal>.
82             </warning>
83         </para>
84     </refsection>
85     <refsection>
86         <title>Примеры</title>
87         <programlisting role="example"><![CDATA[
88 length([123 ; 456 ])
89 length(['hello world',SCI])
90     ]]></programlisting>
91         <programlisting role="example"><![CDATA[
92 a = mlist(["myMlistT" "field1" "field2"],"aexample","bexampleb");
93 length(a)
94 // возвращает 3, поведение по умолчанию, если length не перегружена для
95 // матричноориентированного списка (mlist)
96
97 // создадим функцию перегрузки для матричноориентированного списка типа
98 // myMlistT
99 function r = %myMlistT_length(M)
100     r = length(M.field1)
101 endfunction
102 length(a)
103 // returns 8 result of length(a.field1)
104     ]]></programlisting>
105     </refsection>
106     <refsection role="see also">
107         <title>Смотрите также</title>
108         <simplelist type="inline">
109             <member>
110                 <link linkend="size">size</link>
111             </member>
112         </simplelist>
113     </refsection>
114     <refsection>
115         <title>История</title>
116         <revhistory>
117             <revision>
118                 <revnumber>5.4.0</revnumber>
119                 <revremark>
120                     Эта функция позволяет перегрузку для типа mlist.
121                 </revremark>
122             </revision>
123             <revision>
124                 <revnumber>6.0.0</revnumber>
125                 <revremark>
126                     <itemizedlist>
127                         <listitem>
128                             Функция <literal>length()</literal> для любого cell-массива <literal>C</literal>
129                             ранее всегда была равна 3, каким бы ни было количество размерностей и размеры массива.
130                             Теперь это количество элементов массива нулевой глубины (не считая рекурсии),
131                             эквивалентно инструкции <literal>size(C, "*")</literal>.
132                         </listitem>
133                         <listitem>
134                             Функция <literal>length()</literal> для любого массива структур <literal>S</literal> 
135                             ранее была эквивалентна количеству её полей плюс 2, каким бы ни было количество
136                             размерностей и размеры массива. Теперь это количество элементов массива нулевой
137                             глубины, эквивалентно инструкции <literal>size(S, "*")</literal>.
138                         </listitem>
139                     </itemizedlist>
140                 </revremark>
141             </revision>
142         </revhistory>
143     </refsection>
144 </refentry>