Что такое системная переменная задаваемая в matlab
MATLAB — Переменные
В среде MATLAB каждая переменная является массивом или матрицей.
Вы можете назначить переменные простым способом. Например,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Он создает матрицу 1 на 1 с именем x и сохраняет значение 3 в своем элементе. Давайте посмотрим на другой пример,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Пожалуйста, обратите внимание, что —
Как только переменная введена в систему, вы можете обратиться к ней позже.
Переменные должны иметь значения, прежде чем они будут использованы.
Когда выражение возвращает результат, который не присвоен какой-либо переменной, система назначает его переменной с именем ans, которая может быть использована позже.
Как только переменная введена в систему, вы можете обратиться к ней позже.
Переменные должны иметь значения, прежде чем они будут использованы.
Когда выражение возвращает результат, который не присвоен какой-либо переменной, система назначает его переменной с именем ans, которая может быть использована позже.
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Вы можете использовать эту переменную ANS —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Давайте посмотрим на другой пример —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Несколько назначений
Вы можете иметь несколько назначений на одной строке. Например,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Я забыл переменные!
Команда who отображает все имена переменных, которые вы использовали.
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Команда whos показывает немного больше о переменных —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Команда очистки удаляет все (или указанные) переменные из памяти.
Длинные Задания
Длинные назначения могут быть расширены до другой строки с помощью эллипсов (…). Например,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Формат Команда
Команда format long отображает 16 цифр после десятичной дроби.
MATLAB выполнит приведенный выше оператор и вернет следующий результат:
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Команда формата банка округляет числа до двух десятичных знаков. Например,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
MATLAB отображает большие числа с использованием экспоненциальной записи.
Команда format short e позволяет отображать в экспоненциальной форме с четырьмя десятичными знаками плюс показатель степени.
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Команда format long e позволяет отображать в экспоненциальной форме с четырьмя десятичными знаками плюс показатель степени. Например,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Команда format rat дает наиболее близкое рациональное выражение, полученное в результате вычисления. Например,
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Создание векторов
Вектор — это одномерный массив чисел. MATLAB позволяет создавать два типа векторов —
Векторы строк создаются путем заключения набора элементов в квадратных скобках с использованием пробела или запятой для разделения элементов.
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Векторы столбцов создаются заключением набора элементов в квадратные скобки с использованием точки с запятой (;) для разделения элементов.
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Создание Матрицы
Матрица — это двумерный массив чисел.
В MATLAB матрица создается путем ввода каждой строки в виде последовательности элементов, разделенных пробелами или запятыми, и конец строки обозначается точкой с запятой. Например, давайте создадим матрицу 3 на 3 как —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
11. Константы и системные переменные
Константы и системные переменные
eps — погрешность операций над числами с плавающей точкой (2- 52 );
realmin — наименьшее число с плавающей точкой (2- 1022 );
realmax — наибольшее число с плавающей точкой (2 1023 );
inf — значение машинной бесконечности;
ans — переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;
NaN — указание на нечисловой характер данных (Not-a-Number).
Вот примеры применения системных переменных:
»
» 1/0
Warning: Divide by zero,
ans=
Inf
» 0/0
Warning: Divide by zero,
ans =
NaN
Как отмечалось, системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps=0.0001. Однако важно то, что их значения по умолчанию задаются сразу после загрузки системы. Поэтому неопределенными в отличие от обычных переменных системные переменные не могут быть никогда.
Символьная константа — это цепочка символов, заключенных в апострофы, например:
‘Hello my friend!’
‘Привет’
‘2+3’
Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что ‘ 2+3’ не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые. Соответствующие функции преобразования будут рассмотрены в дальнейшем.
Документация
Включайте Системный объект в модель
Simulink / Пользовательские Функции
HDL Coder / Пользовательские Функции
Описание
Для интерпретированного выполнения модель симулирует блок с помощью MATLAB ® механизм выполнения.
Для генерации кода модель симулирует генерацию кода использования блока (использующий подмножество кода MATLAB, поддержанного для генерации кода). Блок MATLAB System поддерживает только подмножество функций, доступных в MATLAB. Смотрите Функции и Объекты, Поддержанные для Генерации кода C/C++ для полного списка функций. Эти функции включают тех в общие категории, такие как:
Операции над матрицей, как size и length
Системные объекты
Порты
Входной параметр
In — Вход сигнала с блоком MATLAB System
скаляр | вектор | матрица
Блок MATLAB System принимает входные параметры типов, перечисленных в Таблице характеристик Блока. Это не поддерживает виртуальные шины как ввод или вывод. Это не поддерживает невиртуальные шины, которые содержат сигналы переменного размера. Для получения дополнительной информации смотрите Типы данных, Поддержанные Simulink.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Вывод
Out — Предупредите о выходе блока MATLAB System
скаляр | вектор | матрица
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
Параметры
System Object Name — Имя Системного объекта
массив ячеек (значение по умолчанию)
Задайте полное имя пользовательского класса Системного объекта без расширения файла. Эта запись является чувствительной к регистру. Имя класса должно существовать на пути MATLAB.
Можно задать имя Системного объекта одним из этих способов:
Введите имя в текстовом поле.
Кликните по стрелке списка, присоединенной к текстовому полю. Если допустимые Системные объекты существуют в текущей папке, имена появляются в списке. Выберите Системный объект из этого списка.
Просмотрите к папке, которая содержит допустимый Системный объект. Если папка не находится на вашем пути MATLAB, программное обеспечение предлагает вам добавлять его.
Если необходимо создать Системный объект, можно создать один из шаблона путем нажатия на New.
После того, как вы сохраните Системный объект, имя появляется в текстовом поле System object name.
Используйте полное имя пользовательского имени класса Системного объекта. Блок не принимает переменную MATLAB, которую вы присвоили имени класса Системного объекта.
Программируемое использование
Параметры блоков: System |
Ввод: символьный вектор |
Значение: имя Системного объекта |
Значение по умолчанию: ‘ ‘ |
New — Создайте Системный объект из шаблона
Basic (значение по умолчанию) | Advanced | Simulink Extension
Выберите одну из опций для шаблона Системного объекта.
Запускает редактор MATLAB и отображает шаблон для простого Системного объекта с помощью наименьшего количества методов Системного объекта.
Запускает редактор MATLAB и отображает шаблон для более усовершенствованного Системного объекта с помощью большинства методов Системного объекта.
После того, как вы сохраните Системный объект, можно ввести имя в текстовом поле System object name.
Simulate using — Выберите режим симуляции
Code generation (значение по умолчанию) | Interpreted Execution
Выберите режим симуляции.
На первом запуске модели симулируйте и сгенерируйте код для блока MATLAB System с помощью только функции MATLAB, поддержанные для генерации кода. Если структура блока не изменяется, последующие запуски модели не регенерируют код.
Симулируйте модель с помощью всех поддерживаемых функций MATLAB. Выбор этой опции может замедлить эффективность симуляции.
Dependency — Параметр зависимости для блока MATLAB System
автоматический (значение по умолчанию)
Если блок не имеет никаких вкладок, этот параметр появляется в нижней части диалогового окна.
Если блок имеет несколько вкладок, этот параметр появляется в нижней части первой вкладки диалогового окна.
Saturate on integer overflow — Задайте, насыщает ли переполнение
Off (значение по умолчанию) | On
Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. Например, переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127.
Off
Переполнение переносится к соответствующему значению, которое может представлять тип данных. Например, номер 130 не помещается в 8-битное целое число со знаком и переносится к-126.
Советы
Рассмотрите установку этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде.
Полагайте, что снятие этого флажка, когда это необходимо, оптимизирует КПД вашего сгенерированного кода. Снятие этого флажка также помогает вам постараться не чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Ошибки Диапазона сигнала Поиска и устранения неисправностей.
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выходу или результату.
В общем случае процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.
Зависимость
Этот флажок появляется, когда вы используете showFiSettingsImpl метод в Системном объекте.
Программируемое использование
Блокируйте Parameter: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значения: ‘off’ | ‘on’ |
Значение по умолчанию: ‘off’ |
Treat these inherited Simulink signal types as fi objects — Задайте fi типы данных
Fixed-point (значение по умолчанию) | Fixed-point & Integer
Выберите, который наследовал типы данных, чтобы обработать fi типы данных,
Обработайте типы данных с фиксированной точкой как fi типы данных.
Обработайте типы данных с фиксированной точкой и целочисленные типы данных как fi типы данных.
Зависимость
Этот флажок появляется, когда вы используете showFiSettingsImpl метод в Системном объекте.
MATLAB System fimath — Задайте настройки фиксированной точки, чтобы использовать
Same as MATLAB (значение по умолчанию) | Specify Other
Выберите который математические настройки фиксированной точки использовать.
Используйте текущие математические настройки фиксированной точки MATLAB.
Зависимость
Этот флажок появляется, когда вы используете showFiSettingsImpl метод в Системном объекте.
Примеры модели
Настройка времени выборки для системных объектов MATLAB System Block
Управляйте шагом расчета блока MATLAB System с помощью Системы object™ методы.
Характеристики блока
Boolean [ a ] | шина [ b ] [ a ] | дважды [ a ] | перечислимый [ a ] | фиксированная точка [ a ] | целое число [ a ] | один [ a ]
Прямое сквозное соединение
Сигналы переменного размера
Обнаружение пересечения нулем
[ a ] Фактическая поддержка типа данных или возможности зависит от реализации блока.
[ b ] Смотрите Невиртуальные Шины и MATLAB System Block для получения дополнительной информации.
[ c ] Смотрите Сигналы Переменного Размера для получения дополнительной информации.
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.
Фактическая поддержка генерации кода зависит от реализации блока.
Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Можно задать Системный объект и использовать его в блоке MATLAB System для генерации HDL-кода.
HDL Coder поддерживает настраиваемые параметры со следующими типами данных:
Этот блок имеет одну, архитектуру HDL по умолчанию.
Если вы используете предопределенный Системный объект, доступные свойства блока HDL совпадают со свойствами, доступными для соответствующего блока.
По умолчанию следующие свойства блока HDL доступны.
Предупреждение
VariablesToPipeline не рекомендуется. Использование coder.hdl.pipeline (HDL Coder) вместо этого.
Вставьте регистр трубопровода при выходе заданной переменной MATLAB или переменных. Задайте список переменных как вектор символов с пробелами, разделяющими переменные.
Подсистема DUT должна быть односкоростной.
Входные параметры не могут иметь недискретный (постоянный или Inf Размер шага.
Следующий предопределенный System objects поддерживается для генерации кода, когда вы используете их в блоке MATLAB System :
Элементы М-языка MATLAB. Программы MATLAB
Страницы работы
Содержание работы
Элементами в М-языке, применяемом для управления вычислительным процессом в MATLAB, служат константы, переменные, функции, команды и управляющие конструкции. Эти элементы, возможно, в различных соединениях с помощью специальных соединительных элементов, используются как в командной строке, так и в программах.
1.1. КОНСТАНТЫ В MATLAB
Системные константы постоянно определены в системе и имеют специальные обозначения, по которым на них ссылаются, например, pi (=3.1416), eps (=2.2204e-016), realmin (=2.2251e-308), realmax (=1.7977e+308), i, j (jºi).
1.2. ПЕРЕМЕННЫЕ В MATLAB
Переменная в MATLAB определяется идентификатором, типом, местом в памяти компьютера. Для определения переменной в MATLAB необходимо выбрать идентификатор (имя) переменной (начинается с латинской буквы, далее – лат.буквы, цифры, спец.знаки) и использовать эту переменную в операторе командной строки, задающем значение переменной (простое присваивание, ссылка на некот.функции и др.).
А) вещественные числа
A=2 A=2.0 B=-143.298 C=1.23e-2
B) комплексные числа
real(Q) – веществ.часть компл.числа,
imag(Q) – мнимая часть компл.числа,
abs(Q) – абс.величина компл.числа,
conj(Q) – сопряженное компл.число,
angle(Q) – значение фазы (угла) компл.числа в радианах.
a=1:3:10 b=[13, 23, 33, 43, 53] c=linspace(13,53,5)
aa=a’ bb=[13;23;33;43;53] cc= linspace(13,53,5)’ dd=(15:45)’
для векторов с комплексными компонентами: если y – компл.вектор, то y.’ – это вектор-столбец с теми же компонентами, а y’ – это вектор-столбец с компонентами – сопряженными компл.числами.
D) матрицы: M(i,j) – элемент i – й строки и j – го столбца; M(k) – k-й элемент матрицы, вытянутой в столбец.
size(A) (=[3,4]) [m,n]=size(A) (m=3, n=4)
A(:,[1:end-1])=[] à убирает все столбцы кроме последнего
Некоторые специальные матрицы:
ones(m,n) – матрица из единиц
zeros(m,n) – матрица из нулей
rand(m,n) – матрица mxn заполненная случайными числами от 0 до1
C=round(1+100*rand(10,10)) – матрица 10х10, заполненная целыми случайными числами от 1 до 100.
Простые операции с матрицами :
diag(A) – вектор из элементов, стоящих на главной диагонали матрицы А,
diag(diag(А)) – квадратная диагональная матрица с диаг.элементами, как у А, и нулями.
triu(A) tril(A) – матрица с верхней (upper) или нижней (lower) частями из А, дополненные нулями.
cvb=’Moscow is the Capital of Russia’
Строка символов ограничивается одинарными апострофами (на клавише с русской буквой «э») и выделяется цветом.
Можно переводить символьные переменные в числа и наоборот.
Обычно они используются при выводе результатов, графиков, надписей, сообщений.
Контроль за переменными.
1 способ – в окне Workspace
2 способ – команда who – дает перечень определенных к данному моменту времени переменных.
clear – полная очистка от всех переменных (или clear variables)
Функции в MATLAB – это программы, выполняющие некоторые типовые операции с данными. Для выполнения этих операций и получения требуемых результатов достаточно указать имя функции и, возможно, задать некоторые исходные данные. Таким образом, с понятием функции здесь (как и в любом другом языке) связаны 3 понятия: имя функции, набор входных данных (varargin) и набор выходных данных (varargout). Кроме того, определены понятия числа входных параметров (nargin) и числа выходных параметров (nargout).
Функции в MATLAB подразделяются на пользовательские (определенные, разработанные пользователем) и системные (определенные, заданные в системе, не требующие программирования). О том, как создавать пользовательские функции, будет рассказано при рассмотрении вопросов программирования. После создания и отладки пользовательская функция ничем не отличается от системной.
Системные функции подразделяются на встроенные (built-in) и библиотечные. Библиотечные функции хранятся в системе в виде программ на М-языке, записанных в файлы с именем, совпадающим с именем функции, и с расширением *.m. Тексты этих программ доступны для просмотра пользователями (каталог \toolbox\matlab\ в месте установки MATLAB). Например, можно открыть для просмотра m-файл с функцией расчета значения десятичного логарифма (\toolbox\matlab\elfun\log10.m). При выполнении операторы этих программ сначала переводятся в инструкции исполнительной системы компьютера (интерпретируются), а затем – выполняются. Встроенные функции хранятся в системе в откомпилированном виде, не требуют перевода и, благодаря этому, выполняются быстрее библиотечных. В системном каталоге для таких функций хранятся файлы, названные аналогично библиотечным, но содержащие только комментарии по применению функций. Например, можно открыть файл, относящийся к функции расчета экспоненты (\toolbox\matlab\elfun\exp.m).
1.4. ВЫРАЖЕНИЯ В MATLAB
Выражение – это языковая конструкция, включающая элементы языка (константы, переменные, функции), связанные друг с другом с помощью соединительных знаков, задающих операции, выполняемые при вычислении значения выражения. Различают численные (Nexpression), символьные (Cexpression) и логические (Lexpression) выражения в зависимости от результата, получающегося после выполнения операций, входящих в выражение.
Иллюстрированный самоучитель по MatLab
Текстовые комментарии. Переменные и присваивание им значений. Уничтожение определений переменных.
Поскольку MATLAB используется для достаточно сложных вычислений, важное значение имеет наглядность их описания. Она достигается, в частности, с помощью текстовых комментариев. Текстовые комментарии вводятся с помощью символа %, например так:
Примечание
В каждой большой программе есть свои >>ложки дегтя>>. В MATLAB 6 такой >>ложкой дегтя>> является перевод строки при вводе буквы >>с>> русского алфавита в командной строке. В итоге ввод комментариев в командной строке на русском языке превращается в проблему. Пока автор может порекомендовать заменять русское >>с>> на английское, что на виде текстового комментария никак не сказывается. Не рекомендуется вводить русскоязычные комментарии и в тесты m-файлов при подготовке их в редакторе/отладчике (он будет описан позже). Это нередко делает программы неработоспособными. Жаловаться тут бесполезно – MATLAB англоязычный продукт и официальной локализованной под Россию версии этой системы пока нет.
Обычно первые строки m-файлов служат для описания их назначения, которое выводится на экран дисплея после команды help Имя_файла.
Считается правилом хорошего тона вводить в m-файлы достаточно подробные текстовые комментарии. Без таких комментариев даже разработчик программных модулей быстро забывает о сути собственных решений. В текстовых комментариях и в символьных константах могут использоваться буквы русского алфавита – при условии, что установлены содержащие эти буквы наборы шрифтов (см. примечание. выше).
Переменные и присваивание им значений
Переменные – это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.
В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства =:
Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение – вектор или матрица, то переменная будет векторной или матричной.
Имя переменной (ее идентификатор) может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, т. е. оно должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. Недопустимо включать в имена переменных пробелы и специальные знаки, например +. —, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной.
Желательно использовать содержательные имена для обозначений переменных, например speed_1 для переменной, обозначающей скорость первого объекта. Переменные могут быть обычными и индексированными, то есть элементами векторов или матриц (см. выше). Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например s=’Demo’.
Уничтожение определений переменных
В памяти компьютера переменные занимают определенное место, называемое рабочей областью (workspace). Для очистки рабочей области используется функция clear в разных формах, например:
Уничтоженная (стертая в рабочей области) переменная становится неопределенной. Использовать неопределенные переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке. Приведем примеры задания и уничтожения переменных: