В этом примере показано, как с помощью проводника отчетов был создан базовый отчет. Этот отчет объясняет и иллюстрирует магические квадраты - матрицы, столбцы, строки и диагонали которых складываются в одно и то же число (см. magic ссылка на функцию в документации MATLAB ®).
Для создания этого отчета необходимо выполнить следующие основные задачи:
Примечание
Для использования этого примера не требуется знать программное обеспечение MATLAB. Однако знание MATLAB полезно для понимания кода MATLAB, который выполняется во время создания отчета.
Этот пример включает отдельные разделы для различных видов задач создания и создания отчетов. Каждый раздел основан на предыдущих разделах. Однако если вы хотите работать с более поздним разделом, не выполнив предыдущие разделы, можно просмотреть завершенный файл настройки отчета: Magic Squares Report.
Чтобы настроить отчет о магических квадратах, сначала создайте файл настройки для хранения настройки. Затем добавьте в настройку объекты MATLAB, называемые компонентами, чтобы указать содержимое отчета.
Чтобы создать файл настройки отчета:
Запустите сеанс программного обеспечения MATLAB.
Откройте обозреватель отчетов. На панели инструментов MATLAB на вкладке Приложения в разделе Подключение к базе данных и создание отчетов щелкните Генератор отчетов.
Выберите «Файл» > «Создать», чтобы создать файл настройки отчета. Новая настройка отчета имеет имя по умолчанию Unnamed.rpt.
На панели «Свойства» справа:
Чтобы сохранить отчет в текущей рабочей папке, выберите Present working directory из списка Каталог.
Задать формат файла как HTML (from template) для создания выходных данных отчета в формате HTML. Использование (from template) создает оглавление отчета в формате, который можно развернуть и свернуть.
В текстовом поле Описание отчета (Report description) замените существующий текст следующим текстом.
This report creates a series of magic squares and displays them as images. A magic square is a matrix in which the columns, rows, and diagonal all add up to the same number.
Примечание
При изменении поля панели «Свойства» изменяется цвет фона. Это указывает на наличие неприменимых изменений в этом поле. После выполнения какого-либо действия с другим компонентом MATLAB Report Generator™ применяет изменения, и цвет фона снова становится белым.
Сохраните отчет. Выберите «Файл» > «Сохранить как» и присвойте имя файлу настройки отчета magic_squares.rpt.
Новое имя файла появится на панели «Структура».

Сведения о создании содержимого отчета см. в разделе Добавление содержимого отчета с помощью компонентов.
Компоненты отчета определяют информацию, которая должна быть включена в отчет. На следующем рисунке показан пример страницы из отчета, созданного в этом примере, с выделением компонентов, используемых для создания отчета.

В отчете о магических квадратах используются переменные, определенные в рабочей области MATLAB, для указания количества и размеров отображаемых квадратов и отображения переменных в виде таблиц чисел или изображений цветных квадратов:
Переменная magicStartVector задает массив размеров магического квадрата
переменная largestDisplayedArray определяет размер самого большого магического квадрата, который будет показан как множество чисел
Перед выполнением отчета пользователь может потребовать создать эти переменные в рабочей области MATLAB. Однако лучшее решение - позволить отчету создавать переменные, используя Evaluate MATLAB Expression компонент.
Чтобы использовать компонент Вычислить выражение MATLAB (Evaluate MATLAB Expression) для определения переменных отчета, выполните следующие действия.
На панели Структура слева выберите корневой компонент настройки отчета.
![]()
В средней части панели «Библиотека» в разделе «MATLAB» выберите «Вычислить выражение MATLAB».

На панели Свойства (Properties) справа щелкните значок рядом с пунктом Добавить компонент в текущий отчет (Add component to current report), чтобы вставить компонент Вычислить выражение MATLAB (Evaluate MATLAB Expression) в отчет.
Изменить информацию о компоненте на панели «Свойства» можно только после добавления компонента в отчет.
На панели «Структура» нажмите Eval компонент появляется под magic_squares отчет.

Значок в левом верхнем углу окна Eval указывает, что этот компонент не может иметь дочерних компонентов. По умолчанию любые компоненты, добавляемые с помощью Eval выбранный компонент является родственным для этого компонента.
Параметры компонента Вычислить выражение MATLAB (Evaluate MATLAB Expression) отображаются на панели Свойства (Properties).

Чтобы исключить подробные данные кода MATLAB и его вывод в этом отчете, снимите флажки Вставить выражение MATLAB в отчете и Показать выходные данные командного окна в отчете.
В текстовом поле Выражение для вычисления в основной рабочей области замените существующий текст следующим кодом MATLAB.
Совет
Скопируйте и вставьте этот текст из HTML-документации в проводник отчетов.
%This MATLAB code sets up two variables %that define how the report runs. %magicSizeVector is a list of MxM %Magic Square sizes to insert into %the report. Note that magic %squares cannot be 2x2. magicSizeVector=[4 8 16 32]; %largestDisplayedArray sets the %limit of array size that will be %inserted into the report with the %Insert Variable component. largestDisplayedArray=15;
В поле Вычислить это выражение при наличии ошибки замените существующий текст следующим текстом.
disp(['Error during eval: ', evalException.message])
Это приводит к отображению ошибки при сбое кода MATLAB.
Совет
Для немедленного выполнения этих команд в правом верхнем углу проводника отчетов нажмите кнопку Eval Now. Это подтверждает правильность команд, что снижает вероятность возникновения проблем при создании отчетов.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Чтобы создать титульную страницу для отчета, используйте компонент Титульная страница.
На панели «Структура» слева выберите Eval компонент.

В средней части панели «Параметры» в разделе «Форматирование» добавьте в отчет компонент «Титульная страница».
Потому что Eval значок компонента указывает, что этот компонент не может иметь дочерние элементы, компонент титульной страницы является родственным элементом Eval компонент. Аналогично, компонент титульной страницы не может иметь дочерних компонентов.

Примечание
Для использования компонента титульной страницы в отчете требуется компонент главы. Компонент «Глава» еще не добавлен, поэтому на панели «Свойства» отображается сообщение о том, что для правильного отображения компонента «Титульная страница» требуется раздел. Поскольку позже в этом примере к этому отчету добавляются компоненты главы, это сообщение можно игнорировать.
На правой панели «Свойства» перейдите на вкладку «Главная» и введите сведения о странице заголовка.
В текстовом поле «Заголовок» введите Magic Squares.
В текстовом поле «Подзаголовок» введите Columns, Rows, Diagonals: Everyone is Equal.
В разделе «Параметры» выберите Custom author из списка.

В поле справа от поля Custom author введите Albrecht Durer.
Альбрехт Дюрер создал офорт, который содержит магический квадрат. Окончательный отчет содержит изображение этого травления.
Установите флажок Включить правообладателя и год.
В следующем текстовом поле введите The MathWorks.
Во втором текстовом поле введите 1988.

На панели «Свойства» на вкладке «Аннотация» введите:
An introduction to Magic Squares and their meaning.

Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Добавьте главу к отчету с помощью компонента Глава/Подраздел.
На панели «Структура» слева выберите компонент «Титульная страница».

В средней части панели «Библиотека» в разделе «Форматирование» добавьте компонент «Глава/подраздел».

Eval, Титульная страница и Компоненты главы являются дочерними компонентами верхнего уровня отчета и являются родственными братьями и сестрами.
Для заголовка пользовательской главы на панели «Свойства» справа введите Magic Squares Explained.
На панели «Структура» отображается заголовок главы.

Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Включить вводный текст в первую главу путем добавления компонентов «Абзац» и «Текст».
На панели «Структура» слева выберите компонент «Глава».
В средней части панели «Библиотека» в разделе «Форматирование» добавьте компонент «Абзац».
На панели «Структура» новый компонент отображается как дочерний компонент раздела.

По умолчанию компонент абзаца наследует текст от дочерних компонентов. Добавьте два компонента Text.
Примечание
Компонент Text должен иметь родительский компонент Paragrea.
На панели «Библиотека» в категории «Форматирование» добавьте в контур два компонента «Текст».

На панели «Структура» выберите первый Text компонент.
В текстовом поле Текст для включения в отчет введите %<help('magic')>.
% знак и угловые скобки <> указать программному обеспечению генератора отчетов MATLAB, что это код MATLAB для оценки. Команда help('magic') отображает информацию о MATLAB magic функция.
На панели «Структура» выберите второй Text компонент.
В поле Текст для включения в отчет введите этот текст.
The German artist Albrecht Durer (1471-1528) created many woodcuts and prints with religious and scientific symbolism. One of his most famous works, Melancholia I, explores the depressed state of mind that opposes inspiration and expression. Renaissance astrologers believed that the Jupiter magic square (shown in the upper right portion of the image) could aid in the cure of melancholy. The engraving's date (1514) can be found in the lower row of numbers in the square.
Сохраните отчет.
Содержание первой главы теперь завершено.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Создайте изображение Альбрехта Дюрера и включите его в отчет.
На панели «Структура» слева выберите компонент «Глава».
В средней части панели «Библиотека» в разделе «MATLAB» добавьте компонент «Вычислить выражение MATLAB».

Переместите компонент Eval в компонент Paragraint, чтобы изображение соответствовало вводному тексту. Чтобы переместить его, на панели инструментов щелкните стрелку вниз.

С помощью Eval выберите компонент, задайте следующие свойства:
Снимите флажки Вставить выражение MATLAB в отчет (Insert MATLAB) и Показать выходные данные командного окна в отчете (Display command window output in report). Вы не хотите включать код или его вывод в отчет.
В текстовом поле Выражение для вычисления в основной рабочей области замените существующий текст этим кодом MATLAB.
%This loads a self-portrait of Albrecht
%Durer, a German artist. There is a
%magic square in the upper right corner
%of the image.
durerData=load('durer.mat','-mat');
figure('Units','Pixels',...
'Position',[200 200 size(durerData.X,2)*.5 size(durerData.X,1)*.5 ]);
image(durerData.X);
colormap(durerData.map);
axis('image');
set(gca,...
'Xtick',[],...
'Ytick',[],...
'Units','normal',...
'Position',[0 0 1 1]);
clear durerDataЭтот код MATLAB отображает травление Дюрера в окне фигуры MATLAB.
В поле Вычислить это выражение при наличии ошибки замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется при возникновении ошибки при загрузке травления Дюрера.

На панели «Структура» слева выберите Eval компонент.
В средней части панели «Библиотека» в разделе «Обработка графики» добавьте в отчет компонент «Снимок фигуры».
Чтобы встроить компонент изображения (например, изображение или снимок рисунка), включите его в компонент абзаца.
На панели «Свойства»:
В списке Ориентация бумаги (Paper orientation) выберите Portrait.
В списке Инвертировать печатную копию выберите Don't invert.
При выборе этого параметра цвета изображения на экране для печати не изменяются.
Следующие три шага настраивают отчет для удаления изображения из рабочей области MATLAB после добавления изображения в отчет.
На панели «Структура» выберите компонент «Снимок фигуры».
На панели «Библиотека» в разделе «MATLAB» добавьте в отчет компонент «Вычислить выражение MATLAB».
На панели «Свойства»:
Снимите флажки Вставить выражение MATLAB в отчет (Insert MATLAB) и Показать выходные данные командного окна в отчете (Display command window output in report). Вы не хотите включать код или его вывод в отчет.
В текстовом поле Выражение для вычисления в основной рабочей области замените существующий текст на:
%This command deletes the Durer image delete(gcf);
delete(gcf) удаляет текущее изображение в рабочем пространстве MATLAB, в данном случае - травление Дюрера.
В поле Вычислить это выражение при наличии ошибки замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется при возникновении ошибки при удалении травления Дюрера.
Сохраните отчет.
Добавьте главу в отчет для каждого магического квадрата, указанного переменной отчета magicStartVector. Вы используете For Loop для выполнения этой повторяющейся задачи. Для создания магических квадратов и их изображений необходимо выполнить следующие задачи:
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
На панели «Структура» слева выберите компонент «Глава».
В средней части панели «Библиотека» в разделе «Логическое управление и управление потоком» добавьте в отчет компонент для цикла.

Этот компонент For Loop отображается внутри компонента главы. Тем не менее, магические квадраты должны быть обработаны после первой главы, так что сделать for одноранговый компонент компонента главы, а не дочерний.
На панели «Структура» выберите for компонент.
Щелкните стрелку влево, чтобы сделать for одноранговый компонент компонента главы.

На панели «Свойства» справа:
В поле «Конец текста» замените существующий текст следующим текстом:
length(magicSizeVector)
Это длина вектора, который содержит различные размеры для магических квадратных матриц.
В поле Имя переменной (Variable name) замените существующий текст следующим текстом:
MAGIC_SQUARE_INDEX
Эта переменная действует как индекс цикла.

Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Создайте главу для каждого квадрата, добавив к отчету компонент Глава (Chapter) в качестве дочернего элемента компонента Цикл для (For Loop). Это приводит к созданию генератором отчетов главы по каждой итерации цикла for во время создания отчета.
На панели «Структура» слева выберите for компонент.
В средней части панели «Библиотека» в разделе «Форматирование» добавьте в настройку отчета компонент «Глава/подраздел».
Он становится потомком for компонент.
На панели «Свойства» справа выберите Custom из списка Название и введите это для заголовка главы:
Magic Square # %<MAGIC_SQUARE_INDEX>
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Извлечь размер каждой магической квадратной матрицы из magicSizeVector с использованием компонента «Вычислить выражение MATLAB».
На панели «Структура» слева выберите нижний компонент «Глава».
В средней части панели Библиотека (Library) в категории MATLAB добавьте в настройку отчета компонент Вычислить выражение MATLAB (Evaluate MATLAB Expression).
На панели «Свойства»:
Снимите флажки Вставить выражение MATLAB в отчет (Insert MATLAB) и Показать выходные данные командного окна в отчете (Display command window output in report).
В текстовом поле Выражение для вычисления в основной рабочей области замените существующий текст на:
magic_Square_Size=magicSizeVector(MAGIC_SQUARE_INDEX);
Эта команда извлекает следующий размер магического квадрата из вектора размеров, инициализированного в первом Eval компонент отчета. Переменная magic_Square_Size представляет размер текущего обрабатываемого магического квадрата.
В поле Вычислить это выражение при наличии ошибки замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется при возникновении ошибки при попытке извлечения значения из magicSizeVector.

Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Вставьте размер магического квадрата в отчет с помощью компонентов «Абзац» и «Вставить переменную».
На панели «Контур» слева выберите нижний компонент «Оценка».
В средней части панели «Библиотека» в разделе «Форматирование» добавьте в настройку отчета компонент «Абзац».
Не изменяйте свойства. Переменная, содержащая размер магического квадрата, находится в этом абзаце.
На панели «Структура» выберите компонент «Абзац» (ниже for компонент).
На панели Библиотека (Library) в разделе MATLAB добавьте компонент Вставить переменную (Insert Variable) в настройку отчета.
На панели «Свойства» справа:
В текстовом поле Имя переменной введите magic_Square_Size.
В списке Показать как выберите Inline text.

Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Для создания магического квадрата и отображения связанной матрицы или изображения используйте компонент «Вычислить выражение MATLAB».
На панели «Структура» слева выберите нижний компонент «Абзац».
В средней части панели Библиотека (Library) в разделе MATLAB добавьте в настройку отчета компонент Вычислить выражение MATLAB (Evaluate MATLAB Expression).
Сделать этот компонент «Вычислить выражение MATLAB» родственным компонентом компонента «Абзац». На панели «Структура» выберите компонент «Оценка». Щелкните стрелку влево на панели инструментов.
На панели «Свойства» справа:
Снимите флажки Вставить выражение MATLAB в отчет (Insert MATLAB) и Показать выходные данные командного окна в отчете (Display command window output in report).
В текстовом поле Выражение для вычисления в основной рабочей области замените существующий текст этим кодом MATLAB.
% This MATLAB script produces a magic % square of size magic_Square_Size % and creates an image of that square. mySquare=magic(magic_Square_Size); clf imagesc(mySquare); title(sprintf('Magic Square N=%i',magic_Square_Size)) set(gca,'Ydir','normal'); axis equal; axis tight;
Этот код создает магическую квадратную матрицу mySquare размера magic_Square_Sizeи открывает изображение этой матрицы в окне фигуры MATLAB.
В поле Вычислить это выражение при наличии ошибки замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])Этот код выполняется при возникновении ошибки при создании и отображении магического квадрата.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, обобщенном в разделе Ведение интерактивного отчета MATLAB.
Если предыдущие разделы этого примера не были завершены, откройте файл настройки завершенного отчета: Magic Squares Report.
Использовать Logical If, Logical Then, и Logical Else компоненты, чтобы определить, отображать ли магический квадрат в виде массива чисел или в виде изображения.
На панели «Структура» слева выберите Eval компонент.

На панели «Библиотека» в середине в разделе «Логическое управление» и «Управление потоком» дважды щелкните «Логическое если».
На панели «Свойства» справа в текстовом поле «Тестовое выражение» замените существующий текст следующим текстом:
magic_Square_Size<=largestDisplayedArray
Эта команда проверяет текущий размер матрицы (magic_Square_Size) меньше или равно значению, назначенному в первом Eval компонент отчета (largestDisplayedArray=15).
Чтобы обработать результат этого компонента Logical If, создайте два дочерних компонента - Logical Then и Logical Else. Еслиmagic_Square_Size меньше или равно 15, переменная матрицы отображается в отчете. Если magic_Square_Size больше 15, матричное изображение появляется в отчете.
На панели «Структура» выберите if компонент.

На панели «Библиотека» в разделе «Логическое управление и управление потоком» дважды щелкните Логическое Else.
На панели «Структура» выберите if снова компонент.
На панели Библиотека (Library) в разделе Управление логическими процессами и потоками (Logical and Flow Control) дважды щелкните Логический процесс (Logical Then).
then компонент появляется над else компонент.

Сохраните отчет.
Примечание
Этот раздел основан на пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Чтобы просмотреть завершенный файл настройки отчета, откройте Magic Squares Report.
На панели «Структура» слева выберите then компонент.
В средней части панели «Библиотека» в разделе MATLAB дважды щелкните Вставить переменную (Insert Variable).
На панели «Свойства» справа:
В текстовом поле Имя переменной введите mySquare, которая является переменной, содержащей магический квадрат указанного размера.
В списке «Заголовок» выберите None.
В текстовом поле Ограничение размера массива введите 0.
Это Variable отображает магическую квадратную матрицу, сохраненную в mySquare переменная.
На панели «Структура» выберите else компонент.
На панели «Библиотека» в разделе «Обработка графики» дважды щелкните на элементе «Цикл фигуры».
Не изменяйте его свойства.
На панели «Структура» выберите Figure Loop компонент.
На панели «Библиотека» в разделе «Обработка графики» дважды щелкните «Снимок фигуры».
На панели «Свойства»:
В списке Ориентация бумаги (Paper orientation) выберите Portrait.
В списке «Размер изображения» выберите Custom.
В списке «Размер изображения» введите [5 4] для пользовательского размера изображения.
В списке Инвертировать печатную копию выберите Invert.
Эта опция изменяет цвета темных осей на светлые и наоборот.
Панель «Структура» выглядит следующим образом.

Сохраните отчет.
В отчет можно добавить код MATLAB с помощью компонента Вычислить выражение MATLAB (также называемого Eval компонент).
Диалоговое окно Вычислить выражение MATLAB (Evaluate MATLAB Expression) содержит флажок Вычислить это выражение (Evaluate this expression) при наличии ошибки. Диалоговое окно содержит код обработки ошибок по умолчанию, который можно использовать, или можно создать собственный код обработки ошибок.
Если код обработки ошибок по умолчанию не изменен, то при создании отчета в добавленном коде MATLAB возникает ошибка:
Если снять флажок Вычислить это выражение при наличии ошибки, создается полный отчет без отображения сообщения об ошибке в командной строке MATLAB.
Если установлен флажок Вычислить это выражение при наличии ошибки, то создается полный отчет и в командной строке MATLAB появляется сообщение об ошибке.
Чтобы остановить создание отчета при возникновении ошибки в добавленном коде MATLAB, измените вторую и третью строки следующего кода обработки ошибок по умолчанию, как описано ниже:
warningMessageLevel = 2; displayWarningMessage = true; failGenerationWithException = false; failGenerationWithoutException = false;
Чтобы остановить создание отчета и отобразить исключение, измените код по умолчанию на:
displayWarningMessage = false; failGenerationWithException = true;
Чтобы остановить создание отчета без отображения исключения, измените код по умолчанию на:
displayWarningMessage = false; failGenerationWithoutException = true;
Если требуется заменить код обработки ошибок по умолчанию, используйте evalException.message переменная в коде для возврата информации об исключении.
Примечание
Этот раздел основан на пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Чтобы просмотреть завершенный файл настройки отчета, откройте Magic Squares Report.
В начале этого примера вы указали HTML (from template) в качестве выходного формата отчета. Если вы этого не сделали или открыли завершенный файл настройки отчета позже в учебном пособии, настройте его таким образом.
На панели инструментов нажмите кнопку Отчет, чтобы создать отчет.
Во время создания отчета в окне Список сообщений укажите уровень детализации, который должен отображаться в окне Список сообщений.

На панели Структура проводника отчетов каждый компонент файла настройки отчета выделяется по мере его выполнения.
После завершения обработки открывается веб-браузер MATLAB, в котором отображается HTML-файл.

При выборе HTML (from template) в качестве типа вывода в отчете отображается свернутое оглавление. Разверните или сверните каждый узел, щелкнув на нем знак «плюс» или «минус». Нажмите Ctrl + щелчок, чтобы развернуть или свернуть всю структуру (CMD + щелчок на платформах Macintosh).