listvarinfile список переменных в файле сохранённых данных

## Синтаксис

                listvarinfile(filename);
                [names, typs, dims, vols] = listvarinfile(filename)

## Аргументы

filename

  символьная строка, имя файла (и путь), который следует проинспектировать.

nams

  матрица строк, имена переменных, сохранённых в файле `filename`.

dims

  список, размерности переменных, сохранённых в файле `filename`.

typs

  числовая матрица, типы переменных, сохранённых в файле `filename`.

vols

  числовая матрица, размер (в байтах) переменных, сохранённых в файле `filename`.

## Описание

Эта служебная функция составляет список переменных (наподобие whos), сохранённых в файле данных Scilab'а, созданного с помощью save.

рациональные числа и пространства состояний представляются в виде простых типизированных списков (tlist);

## Примеры

    // Подготовка данных различных типов:
    b = rand(2,3) < 0.5;                    // логические значения
    i = uint64(grand(3,4,2,"uin",0,100));   // гиперматрица кодированных целых чисел
    c = grand(3,3,"uin",-10,10); c=c+c'*%i; // комплексые числа
    p = (1-%z).^(0:3);                      // полиномы
    r = p/(1+%z);                           // рациональные значения
    sp = sprand(10,15,0.1);                 // разрежённая матрица чисел
    spb = sp<0.5;                           // разрежённая матрица логических значений
    t = ["This" "software" ; "is" "Scilab"];// текстовые строки
    g = [gdf() gda()];                      // графические дескрипторы
    function Test()                         // сценарий
        disp("listvarinfile() test for macros")
    end
    M = linspace;                           // сценарий
    L = list(%f, int8(-23),, %i-%z, list("abc",%e)); // простой список
    C = {"abc" %t ; %z list(1/%z, 4)};      // cell-массив
    S(4,2).r = %pi;                         // массив структур
    vars = list("b","i","c","p","r","sp","spb","t","g","Test","M","L","C","S");

    // Архивация данных в бинарном файле:
    File = TMPDIR + "\listvarinfile.sod";
    save(File, vars(:))

    // Распечатка содержимого файла:
    [names,types,dims,vols] = listvarinfile(File);
    types(find(names=="Test"))
    dims(find(names=="i"))

    --> [names,types,dims,vols] = listvarinfile(File);
    Name                     Type           Size            Bytes
    -------------------------------------------------------------
    C                        cell           2 by 2          76
    L                        list           4               51
    M                        macro          1 by 1          0
    S                        struct         4 by 2          8
    Test                     macro          1 by 1          0
    b                        boolean        2 by 3          24
    c                        double         3 by 3          144
    g                        handle         1 by 2          0
    i                        integer        3 by 4 by 2     192
    p                        polynomial     1 by 4          80
    r                        tlist          4               162
    sp                       sparse         10 by 15        232
    spb                      boolean sparse 10 by 15        624
    t                        string         2 by 2          40

    --> types(find(names=="Test"))
     ans  =
       13.

    --> dims(find(names=="i"))
     ans  =
       3.   4.   2.

## Смотрите также

- save
- load
- save_format
- type
- whos
- who

## История

6.0

- Теперь гиперматрицы перечисляются с типом их содержимого, вместо "mlist" и типа 17. Их размеры теперь являются фактическими размерами вместо 3.
- Cell-массивы и массивы структур теперь появлются в виде "cell" и "struct" вместо "mlist". Теперь их размеры являются фактичскими размерами вместо 3.
- Массивы графических дескрипторов теперь появляются в виде "handle" и типа 9 вместо "tlist" и типа 16. Теперь их размеры являются фактичскими размерами вместо 3.
- Сценарии теперь появляются в виде "macro" и типа 13 вместо "tlist" и типа 16.
- Вещественные и комплексные числа теперь появляются в виде "double" вместо "constant".