Аннотации являются визуальными элементами, которые можно использовать, чтобы добавить описательные примечания и выноски к модели. В дополнение к аннотациям только для текста можно создать аннотации, которые:
Открыть веб-сайты
Выполните MATLAB® команды
Отобразите изображения
Визуально дифференцируйте области блоков
В следующих примерах показано, как программно создавать, редактировать и удалять аннотации.
Программно создавайте, изменяйте и просматривайте аннотацию.
Откройте новую модель.
open_system(new_system)
Создайте аннотацию со свойствами по умолчанию с помощью Simulink.Annotation
функция.
a = Simulink.Annotation(gcs,'This is an annotation.');
После создания аннотации используйте запись через точку для того, чтобы задать значения свойств. Например, примените к аннотации шрифт с 18 точками и светло-синий фон.
a.FontSize = 18;
a.BackgroundColor = 'lightBlue';
Чтобы просмотреть и кратко выделить новую аннотацию, используйте view
функция.
view(a)
Программно найдите и измените свойства аннотации.
Откройте vdp
модель.
vdp
Чтобы найти аннотации в модели, используйте find_system
функция.
h = find_system(gcs,'FindAll','on','Type','annotation');
Чтобы идентифицировать аннотации, запросите текст внутри аннотаций с помощью get_param
функция.
get_param(h,'PlainText')
ans = 2x1 cell
{'Copyright 2004-2020 The MathWorks, Inc.'}
{'van der Pol Equation' }
Предположим, вы хотите применить светло-синий цвет фона к 'van der Pol Equation'
аннотация.
Получите Simulink.Annotation
объект путем определения соответствующего индекса массива.
a = get_param(h(2),'Object');
Используйте запись через точку, чтобы задать значение BackgroundColor
свойство.
a.BackgroundColor = 'lightBlue';
Программно удалите аннотацию.
Откройте vdp
модель.
vdp
Чтобы получить указатели на аннотации в модели, используйте find_system
функция.
h = find_system(gcs,'FindAll','on','Type','annotation');
Чтобы идентифицировать аннотации, запросите текст внутри аннотаций.
get_param(h,'PlainText')
ans = 2x1 cell
{'Copyright 2004-2020 The MathWorks, Inc.'}
{'van der Pol Equation' }
Чтобы удалить заголовок модели ('van der Pol Equation'
), получите Simulink.Annotation
объект, который соответствует второму указателю.
a = get_param(h(2),'Object');
Удалите аннотацию из модели.
delete(a)
Для аннотаций с форматированным текстом можно использовать HTML, чтобы добавить гиперссылку к тексту в аннотации.
Откройте новую модель.
open_system(new_system)
Создать две аннотации, перемещая одну из аннотаций так, чтобы она не перекрывалась другой.
a1 = Simulink.Annotation(gcs,'This is an annotation.'); a2 = Simulink.Annotation(gcs,'This is another annotation.'); a2.Position = [0 20 28 34];
Чтобы создать гиперссылку в аннотации, задайте Interpreter
на 'rich'
и определите гиперссылку в Text
свойство.
a1.Interpreter = 'rich'; a1.Text = 'Go to <a href="www.mathworks.com">www.mathworks.com</a>.';
Можно также встраивать функции MATLAB в гиперссылку.
a2.Interpreter = 'rich'; a2.Text = '<a href="matlab:magic(4)">Generate magic square</a>.';
Для получения дополнительной информации см. Раздел «Создание гиперссылок, выполняющих функции».
Добавьте к модели изображение, например логотип, создав только для изображения аннотацию.
Откройте новую модель и создайте в ней аннотацию.
open_system(new_system)
a = Simulink.Annotation(gcs,'This is an annotation.');
Измените аннотацию, чтобы отобразить только заданное изображение.
img = fullfile(matlabroot,'toolbox','matlab','imagesci','peppers.png'); setImage(a,img)
Создать аннотацию площади в модели.
Откройте vdp
модель.
open_system('vdp')
Создайте область, которая включает некоторые блоки в модели.
add_block('built-in/Area','vdp/This is an area','Position',[120,100,230,200])
Чтобы создать аннотации, которые можно легко скрыть, создайте аннотации разметки.
Откройте новую модель.
open_system(new_system)
Создать две аннотации и переместить вторую аннотацию так, чтобы она не перекрывала первую аннотацию.
a1 = Simulink.Annotation(gcs,'This is a model annotation.'); a2 = Simulink.Annotation(gcs,'This is a markup annotation.'); a2.Position = [0 20 28 34];
По умолчанию вы создаете аннотации модели, которые появляются в модели.
Измените вторую аннотацию на аннотацию разметки.
a2.MarkupType = 'markup';
Сконфигурируйте текущую модель, чтобы скрыть аннотации разметки.
set_param(gcs,'ShowMarkup','off');
Обе аннотации остаются, несмотря на то, что аннотация разметки скрыта.
ah = find_system(gcs,'FindAll','on','Type','annotation'); at = get_param(ah,'Text')
at = 2x1 cell
{'This is a markup annotation.'}
{'This is a model annotation.' }
Если аннотация вызвала выполняющийся в данный момент обратного вызова, используйте getCallbackAnnotation
чтобы определить, какая аннотация вызвала его. Функция возвращает соответствующее Annotation
объект. Эта функция также полезна, если вы записываете функцию обратного вызова в отдельный файл MATLAB, который содержит несколько обратных вызовов.
add_block
| delete
(Annotation)
| setImage
(Annotation)
| Simulink.Annotation
| view
(Annotation)