compactRepresentationForSingleLine

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

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

Описание

пример

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

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

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

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

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

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

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

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

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

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

Примеры

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

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

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

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

    methods
        function rep = compactRepresentationForSingleLine(obj,displayConfiguration,width)
            % Fit as many array elements in the available space as possible
            [rep,~] = widthConstrainedDataRepresentation(obj,displayConfiguration, ...
                width,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

В Командном окне создайте структуру с полем, которое содержит массив некоторых Weekdays объекты. MATLAB® отображения все элементы массива в одной строке. Кроме того, потому что массив включает член перечисления WeekDays.Saturday, MATLAB отображает аннотацию.

s = struct("FreeLunchDays",[WeekDays.Monday WeekDays.Wednesday WeekDays.Friday WeekDays.Saturday])
s = 

  struct with fields:

    FreeLunchDays: [Monday    Wednesday    Friday    Saturday]  (Includes Weekends)

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

days = repmat(WeekDays.Friday,1,52); 
s.FreeLunchDays = days
s = 

  struct with fields:

    FreeLunchDays: [Friday    Friday    Friday    Friday    Friday    Friday    Friday    Friday    …    ]

Советы

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

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

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

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

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