compactRepresentationForColumn

Класс: matlab.mixin.CustomCompactDisplayProvider
Пакет: matlab.mixin

Настройте колоночное компактное представление отображения объектного массива

Описание

пример

rep = compactRepresentationForColumn(obj,displayConfiguration,width) возвращает колоночное компактное представление отображения объектного массива obj. Чтобы обеспечить подходящее представление, метод использует текущий контекст отображения displayConfiguration и доступная ширина символов, обеспеченная контейнером, который должен отобразить obj.

compactRepresentationForColumn вызван контейнерами, которые поддерживают колоночное размещение отображения; например, когда ваш объект отображен в MATLAB® таблица. Реализация по умолчанию метода использует измерения массива и имя класса, чтобы представлять obj.

Входные параметры

развернуть все

Объектный массив, чтобы отобразиться в виде объектного массива класса, выведенного из matlab.mixin.CustomCompactDisplayProvider.

Описание текущего контекста отображения в виде matlab.display.DisplayConfiguration объект.

Доступная ширина символов, чтобы отобразить объектный массив в виде положительного целочисленного скаляра.

Выходные аргументы

развернуть все

Колоночное компактное представление отображения объектного массива, чтобы отобразиться, возвращенный как matlab.display.CompactDisplayRepresentation объект.

Примеры

развернуть все

Чтобы отобразить пользовательскую информацию об объектах вашего класса, когда они будут содержаться в рамках таблицы, выведите свой класс из matlab.mixin.CustomCompactDisplayProvider соедините интерфейсом и замените compactRepresentationForColumn метод.

В вашей текущей папке создайте Weekdays класс перечисления путем разделения на подклассы matlab.mixin.CustomCompactDisplayProvider. Настройте компактное отображение для колоночного размещения путем подбора кривой всем элементам объектного массива в доступной ширине символов, если это возможно, и также добавления аннотации для каждой строки объектного массива, который включает дни выходных дней. Чтобы настроить компактное отображение, замените compactRepresentationForColumn метод с помощью вызова fullDataRepresentation служебный метод.

classdef WeekDays < matlab.mixin.CustomCompactDisplayProvider
    enumeration
        Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
    end

    methods
        function rep = compactRepresentationForColumn(obj,displayConfiguration,~)
            % Fit all array elements in the available space, or else use
            % the array dimensions and class name
            rep = fullDataRepresentation(obj,displayConfiguration, ...
                Annotation=annotation(obj));
        end
        function res = annotation(obj)
            % Construct annotation as a column vector of strings
            numRows = size(obj,1);
            res = strings(numRows,1);
            for i = 1:numRows   % Add text for each row that includes weekend days
                currentRow = obj(i,:);
                if any(currentRow == WeekDays.Saturday) || any(currentRow == WeekDays.Sunday)
                    res(i) = "Includes Weekends";
                end
            end
        end
    end
end

В Командном окне создайте таблицу T это содержит WeekDays массив, включающий несколько элементов. Поскольку доступная ширина символов является достаточно большой, MATLAB отображает все элементы массива. Кроме того, потому что вторая строка массива включает член перечисления WeekDays.Saturday, MATLAB отображает аннотацию для той строки.

Location = ["Boston"; "New York"];
FreeLunchDays = [WeekDays.Wednesday WeekDays.Friday; WeekDays.Thursday WeekDays.Saturday];
T = table(Location,FreeLunchDays)
T =

  2×2 table

     Location                   FreeLunchDays               
    __________    __________________________________________

    "Boston"      Wednesday    Friday                       
    "New York"    Thursday     Saturday  (Includes Weekends) 

Теперь обновите FreeLunchDays переменная с помощью WeekDays массив со многими элементами. Поскольку MATLAB больше не может отображать все элементы массива в доступной ширине символов, он использует измерения массива и имя класса.

T.FreeLunchDays = repmat(WeekDays.Friday,2,52)
T =

  2×2 table

     Location     FreeLunchDays
    __________    _____________

    "Boston"      1×52 WeekDays
    "New York"    1×52 WeekDays

Советы

  • CustomCompactDisplayProvider интерфейс обеспечивает служебные методы, которые можно вызвать из compactRepresentationForColumn удобно настроить колоночное компактное представление отображения ваших объектов:

    • Чтобы создать представление объектного массива, который показывает все его данные, используйте fullDataRepresentation метод.

    • Чтобы создать представление объектного массива, который показывает фрагмент его данных, используйте partialDataRepresentation метод.

    • Чтобы создать представление объектного массива, который показывает как можно больше его данных на основе доступной ширины, используйте widthConstrainedDataRepresentation метод.

Введенный в R2021b
Для просмотра документации необходимо авторизоваться на сайте