fullDataRepresentation

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

Создайте компактное представление отображения от всех данных в объектном массиве

Описание

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

пример

rep = fullDataRepresentation(obj,displayConfiguration,Name=Value) создает компактное представление отображения с помощью дополнительных опций, заданных одними или несколькими аргументами name-value.

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

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

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

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

Аргументы name-value

Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.

Пример: rep = fullDataRepresentation(obj,displayConfiguration,Annotation="My Object") создает компактное представление отображения obj это включает заданную аннотацию.

Текстовое представление данных в объектном массиве в виде массива строк с одинаковым числом строк как obj. Когда вы задаете этот аргумент, метод использует заданный массив строк вместо того, чтобы вызвать метод конвертера строки класса на объектном массиве.

Используйте этот аргумент, когда класс объектного массива не реализует метод конвертера строки или когда метод конвертера не создает массив строк, подходящий для использования в компактном сценарии отображения.

Описательный комментарий об объектном массиве в виде массива строк N-1, где N является количеством строк в obj. Метод добавляет заданную аннотацию к тексту, представляющему данные в объектном массиве.

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

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

Компактное представление отображения объектного массива, возвращенного как matlab.display.PlainTextRepresentation или matlab.display.DimensionsAndClassNameRepresentation объект.

По умолчанию метод пытается представлять obj как PlainTextRepresentation объект. Это возвращает DimensionsAndClassNameRepresentation возразите только в этих ситуациях:

  • obj пустое значение.

  • obj должен использовать однострочное размещение отображения, но это не вектор-строка.

  • obj должен использовать колоночное размещение отображения, но это не матрица.

Примеры

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

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

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

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

    methods
        function rep = compactRepresentationForSingleLine(obj,displayConfiguration,~)
            rep = fullDataRepresentation(obj,displayConfiguration,Annotation=annotation(obj));
        end
        function rep = compactRepresentationForColumn(obj,displayConfiguration,~)
            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

В Командном окне создайте структуру с полем, которое содержит массив некоторых 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: [1×52 WeekDays]

Теперь протестируйте пользовательское компактное отображение WeekDays объекты для колоночного размещения. Создайте таблицу 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

Советы

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