<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2008 - INRIA
 * Copyright (C) 2011 - INRIA - Serge STEER
 * Copyright (C) 2011 - DIGITEO - Allan CORNET
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<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" xmlns:scilab="http://www.scilab.org" xml:id="size" xml:lang="ru">
    <refnamediv>
        <refname>size</refname>
        <refpurpose>размер объекта</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Синтаксис</title>
        <synopsis>
            sz = size(x)
            [n1, n2] = size(x)
            [n1, n2, n3, ...] = size(x)
            n = size(x, sel)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Аргументы</title>
        <variablelist>
            <varlistentry>
                <term>x</term>
                <listitem>
                    <para>двухмерный или n-мерный массив любого типа или список</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>sz</term>
                <listitem>
                    <para>
                        вектор целочисленных значений размерами <literal>1</literal> на <link linkend="ndims">ndims(x)</link>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>sel</term>
                <listitem>
                    <para>
                        положительный целочисленный скаляр либо одна из символьных строк
                        'r', 'c' или '*'
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>n1, n2, ...</term>
                <listitem>
                    <para>целые числа</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>n</term>
                <listitem>
                    <para>целое число</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Описание</title>
        <variablelist>
            <varlistentry>
                <term>Применимо к:</term>
                <listitem>
                    <para>
                        массиву или n-мерному массиву (тип которого constant, polynomial, string, boolean,
                        rational)
                    </para>
                    <itemizedlist>
                        <listitem>
                            <literal>sz = size(x)</literal>

                            возвращает вектор размером <literal>1</literal> на
                            <literal>ndims(x)</literal>. Каждый элемент вектора даёт значение
                            соответствующего измерения.
                        </listitem>
                        <listitem>
                            <literal>[n1, n2, ...] = size(x)</literal>, функция возвращает в каждом
                            аргументе значение соответствующего измерения.
                        </listitem>
                        <listitem>
                            Синтаксис <literal>n = size(x, sel)</literal> может быть использован
                            для определения размерности, которую нужно получить:

                            <itemizedlist mark="dash"><listitem>
                                    Установите <literal>sel</literal> равным 1 или <literal>'r'</literal>, чтобы получить число строк.
                                </listitem>
                                <listitem>
                                    Установите <literal>sel</literal> равным 2 или <literal>'c'</literal>, чтобы получить число столбцов.
                                </listitem>
                                <listitem>
                                    Установите <literal>sel</literal> равным <literal>m</literal>, где
                                    <literal>m</literal> является положительным целым числом, чтобы получить
                                    <literal>m</literal>-тую размерность. Если <literal>m</literal> больше, чем
                                    <literal>ndims(x)</literal>, то <literal>size(x,m)</literal> возвращает 1.
                                </listitem>
                                <listitem>
                                    Установите <literal>sel</literal> равным <literal>'*'</literal>, чтобы получить произведение
                                    размерностей.
                                </listitem>
                            </itemizedlist>
                        </listitem>
                    </itemizedlist>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>Применимо к:</term>
                <listitem>
                    <para>списку; возвращает количество элементов. В этом случае может использоваться только
                        синтаксис <literal>y = size(x)</literal> .
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>Применимо к:</term>
                <listitem>
                    <para>
                        линейной системе; <literal>y = size(x)</literal> возвращает в
                        <literal>y</literal> вектор-(строку) [число выходных значений, число входных значений]
                        т.е. размер соответствующей передаточной матрицы. Синтаксис
                        <literal>[nr, nc] = size(x)</literal> также корректен (с
                        <literal>(nr, nc) = (y(1), y(2))</literal>). Если <literal>x</literal>
                        является линейной системой в форме пространства состояний, то <literal>[nr, nc, nx] =
                            size(x)
                        </literal>
                        возвращает дополнительно размерность
                        <literal>nx</literal> матрицы <literal>x</literal>.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Примеры</title>
        <programlisting role="example">
            [n, m] = size(rand(3, 2))
            [n, m] = size(['a', 'b'; 'c', 'd'])

            x = ssrand(3, 2, 4);
            [ny, nu] = size(x)
            [ny, nu] = size(ss2tf(x))
            [ny, nu, nx] = size(x)

            // Возвращает количество строк
            n = size(rand(3, 2), "r")
            // Возвращает количество столбцов
            m = size(rand(3, 2), "c")
            // Возвращает произведение размерностей
            nm = size(rand(3, 2), "*")
        </programlisting>
    </refsection>
    <refsection role="see also">
        <title>Смотрите также</title>
        <simplelist type="inline">
            <member>
                <link linkend="length">length</link>
            </member>
            <member>
                <link linkend="ndims">ndims</link>
            </member>
            <member>
                <link linkend="syslin">syslin</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
