Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Как осуществляется ввод и редактирование команд в окне Command Window? Реагирование на ошибки в среде Matlab, обнаружение семантической ошибки командой pretty (В1Б27,В2Б1,В3Б22).Стр 1 из 7Следующая ⇒
Как осуществляется ввод и редактирование команд в окне Command Window? Реагирование на ошибки в среде Matlab, обнаружение семантической ошибки командой pretty (В1Б27, В2Б1, В3Б22). Основным элементом командного режима работы с системой является главное или командное окно Command Window. Оно активизируется командой View => Desktop Layout => Command Window Only основного меню MATLAB. Текстовое поле окна Command Window располагается в двух принципиально разных зонах: зоне просмотра и зоне редактирования. Зона редактирования находится в командной строке, а вся остальная информация видимой части командного окна – в зоне просмотра. Пока не нажата клавиша < Enter>, вводимое выражение может быть отредактировано или удалено. В зоне просмотра уже ничего нельзя исправить. Если поместить в нее курсор и нажать какую - либо клавишу на клавиатуре, курсор будет автоматически перемещен в строку ввода, расположенную в зоне редактирования. В то же время, с помощью клавиш < ← > и < → > можно перемещать курсор в командной строке. Строка в текстовом поле командного окна, отмеченная символом приглашения > > с мигающим курсором, называется строкой ввода или командной строкой. Она предназначена для ввода с клавиатуры команд, чисел, имен переменных и знаков операций, составляющих выражение. Для того, чтобы система MATLAB выполнила введенную команду или вычислила заданное выражение, следует нажать клавишу < Enter> (Ввод). При вводе курсор может находиться в любом месте командной строки. Введенные выражения вычисляются, а результаты вычислений и выполнения команд появляются в одной или нескольких строках командного окна – строках вывода. Иногда требуется ввести в окне Command Window команду, которая слишком длинна, чтобы уместиться на одной строке. При приближении к концу строки можно ввести … (три последовательные точки), нажать клавишу < Enter> и продолжить набор команды на следующей строке. При этом вы не увидите на новой строке символа приглашения > >. При обнаружении ошибок в выражениях или командах MATLAB указывает на наличие ошибки. Надо отличать предупреждение об ошибке от сообщения о ней. Предупреждения (обычно после слова Warning ) не останавливают вычисления и лишь предупреждают о том, что ответ может быть ошибочным. При сообщении об ошибке красного цвета(после знаков??? ) MATLAB не выдает решение. Устранение ошибки наиболее целесообразно не путем набора нового правильного выражения, а редактированием ошибочного. При вычислениях любое арифметическое выражение набирается с клавиатуры в командной строке. Редактор MATLAB укажет на синтаксические ошибки. Но он не обнаружит так называемые семантические ошибки, когда, например, пользователь ошибочно заменит знаки операций < +> на < –> или неверной расстановкой скобок изменит общий порядок выполнения операций и т. д. Команда pretty выводит в командное окно символьное выражение в формате близком к математическому. Какая инф-ция сохраняется в окнах Command History и Workspace после применения команды очистки экрана clc? Как получить справку по выбранной команде Matlab? (В1Б26, В2Б27, В3Б1). Команда очистки экрана clc > > clc стирает содержание командного окна MATLAB и размещает символ приглашения > > в левом верхнем углу пустого экрана. Эта команда, однако, оставляет неизменным содержимое окон Command History и Workspase. Поэтому в «чистом» командном окне можно пользоваться значениями переменных, полученных до ввода команды clc. Полный список операторов и справочную информацию по любому из них можно получить в разделе ops справочной системы MATLAB, используя команды help или doc. Получить доступ к справочной информации MATLAB можно различными способами: введя в командную строку соответствующую справочную команду или функцию; с помощью команд меню Help; щелкнув на кнопке со знаком вопроса на панели инструментов основного окна MATLAB. Одной команд них является команда > > help которая выводит весь список папок (каталогов), содержащих m-файлы с определениями операторов, функций и иных объектов (рис. П.1). Этот список дает представление о пакетах прикладных программ, расширяющих возможности системы MATLAB и содержащих примеры применения системы. При вводе команды > > help elfun в командное окно выводится список встроенных элементарных функций. Для получения справочной информации по любой из них требуется выполнить команду help < имя функции>. Форматы отображения вещественных чисел, используемые в MATLAB (В1Б25, В2Б2, В3Б20). Число – простейший объект системы MATLAB, представляющий количественные данные. Основным типом данных являются десятичные числа. Они приближают с заданной точностью произвольные вещественные (действительные) числа. Десятичные числа могут быть целыми и дробными, например: 0, 1, -93, 7.5674, 0.00000047. Возможно представление чисел в экспоненциальной форме с указанием мантиссы и порядка числа: 3.3333e -4; -75.8e13. Для отделения порядка числа от мантиссы применяется символ e, т.е. запись 3.3333e -04 соответствует записи 3.3333× 10-4 или 0.00033333. Ввод чисел возможен в любом удобном для пользователя виде. Например, проще набрать 10e8 или 1.0e9, чем 1 000 000 000, а результат будет тот же самый. Пробел между цифрами и символом e при вводе не допускается, так как это приводит к сообщению об ошибке: > > 10 e8 ??? 10 e8 Error: Missing operator, comma, or semicolon. В качестве разделителя целой и дробной частей числа используется точка, а не запятая. При вводе числа с нулевой целой частью ноль может опускаться: .5 равнозначно 0. 5. Хотя задавать вещественные числа можно в любой из указанных выше форм, на машинном уровне системы MATLAB они представляются в форме с мантиссой и показателем степени. Этот основной тип данных называется double (формат с двойной точностью). Он задается по умолчанию, и даже целые числа представляются системой MATLAB на машинном уровне в той же форме, что и дробные числа. Под мантиссу и показатель степени (на машинном уровне используется двоичная система записи) отводится 8 байт памяти. В результате для десятичных чисел достигается точность порядка 15 значащих цифр. Они принимают по модулю значения от 2.2250738507201e -308 до 1.797693134862316e+308. Для этих чисел зарезервированы имена realmin и realmax. Все операции над числами MATLAB выполняет по умолчанию в формате double. В MATLABтакже существует тип данных single, который снижает требования к памяти в два раза (под мантиссу и показатель степени отводится 4 байта). Но при сложных вычислениях в этом случае возрастает вероятность получить результат с большой погрешностью. Существуют и целые типы данных: int8, uint8, int16, uint16, int32, uint32, int64, uint64. Под них отводится 8, 16, 32 и 64 байта соответственно.Буква u соответствует беззнаковым типам данных с диапазоном от 0 до некоторого максимального положительного значения. Для того чтобы переменная получила тип данных, отличный от double, применяется явный квалификатор, совпадающий с названием типа. Например, > > x=int32(3.2) определяет переменную целого типа int32. Подробную информацию о перечисленных типах данных можно получить с помощью команд doc double, doc single, doc int8, doc uint8.
Как в Matlab создать вектор с помощью операции сцепления строк, индексацией с помощью вектора, индексаций с помощью двоеточия? (В1Б21, В2Б4, В3Б18). Длинный вектор можно вводить частями, которые затем объединяются с помощью операции сцепления строк: > > V1=[1 2 3]; V2=[4 5 6]; > > V=[V1 V2] V = 1 2 3 4 5 6 Для создания нового вектора из определенных в заданном порядке элементов другого вектора применяется индексация при помощи вектора. Запись в вектор W пятого, второго, первого и третьего элементов вектора V производится следующим образом: > > ind=[5 2 1 3]; > > W=V(ind) W = 5 2 1 3 Пусть в векторе из девяти элементов требуется заменить нулями элементы с третьго по седьмой. Эту задачу легко решить индексацией с помощью двоеточия. Например: > > P=[-1 0.1 2.2 3.4 5.6 3.1 6.8 9.7 5.5]; > > P(3: 7)=0 P = -1.0000 0.1000 0 0 0 0 0 9.7000 5.5000
Какие операции отношения и логические операции над числами определены в Matlab? Какова иерархия приоритетов в выполнении математических операций, операций отношений и логических операций? (В1Б16, В2Б22, В3Б6). Операторы отношения служат для поэлементного сравнения двух операндов, в качестве которых могут выступать числа, векторы или матрицы. При этом сравниваемые векторы или матрицы должны иметь одинаковые размеры. Если операнды одинаковы, то программа возвращает 1 ( True – Истина), в противном случае – 0 ( False – Ложь). Перечень операторов отношения с соответствующими им функциями представлен в таблице 4.1.
Таблица 4.1. Операторы отношения и их функции
Операторы = = и ~= сравнивают действительные и комплексные переменные. При этом сравниваются действительные и комплексные части числа. Операторы <, < =, >, > = при сравнении комплексных чисел сравнивают только действительные части числа. Примеры приведены в табл. 4.2.
Таблица 4.2. Примеры использования операторов отношения
Если при вычислениях надо формально определить, является ли переменная x комплексной, можно вызвать функцию isreal(x), возвращающую 1 если x не является комплексной и 0 в противном случае. В выражениях, вводимых в командном окне системы MATLAB, операторы отношения могут использоваться наряду с арифметическими операторами. В операторах отношения допустимо сравнение массива и числа. В этом случае происходит сравнение каждого элемента массива с числом. Логические операторы предназначены для выполнения поэлементных логических операций над массивами одинаковых размеров. Логические операторы и соответствующие им функции приведены в табл. 4.3. Таблица 4.3. Логические операторы и их функции
Первые три операции являются двухоперандными (бинарными), а операция < Не > является унарной (однооперандной). При выполнении логических операций «истинными» считаются операнды, не равные нулю, а «ложными» – операнды, равные нулю. При этом результатом операции < И > будет 1, если оба операнда не равны нулю, и 0, если хотя бы один из операндов нулевой. Операция < ИЛИ > дает 1, если хотя бы один операнд не равен нулю. Операция < исключающее ИЛИ > выдает 1 лишь тогда, когда один из операндов равен нулю, а другой не равен, в остальных случаях она выдает 0. Операция < НЕ > выдает 1, если ее единственный операнд равен нулю, и 0 в противном случае. Элементами логических операторов могут быть массив и число. В этом случае происходит поэлементное выполнение логической операции для каждого элемента массива и числа. Результатом является массив того же размера, что и исходный. Поскольку логические и арифметические операции могут входить в одно выражение, порядок выполнения этих операций зависит от их приоритета. Выполнение операций одинакового приоритета происходит в порядке слева направо. Приоритет операций можно изменить с помощью круглых скобок. Приоритеты операций системы MATLAB в порядке убывания приведены ниже: 1. Круглые скобки < ( ) >. 2. Транспонирование <.' >, транспонирование с комплексным сопряжением< ' >, возведение в степень < ^ >, поэлементное возведение в степень <.^ >. 3. Унарный плюс < +>, унарный минус < –>, логическое отрицание < ~>. 4. Умножение и деление (в том числе поэлементное) < * >, < / >, < \ >, <.* >, <./ >, <.\ >. 5. Сложение < +> и вычитание < –>. 6. Операции отношения <, < =, >, > =, ==, ~=. 7. Логическое И < & >. 8. Логическое ИЛИ < |>. Отметим, что сначала выполняются операции над аргументами функций eq, ne, lt, gt, le, ge, and, or, not, если использовать их вместо соответствующих им операторов. Например, два выражения and(A, B)+F и A& B+F не эквивалентны. Справку можно получить с помощью команды doc ops.
End Здесь var – переменная (счетчик) цикла, которая при каждом повторении цикла изменяется от начального значения b1 до конечного значения b3 с шагом b2 (если параметр b2 не указан, по умолчанию его значение принимается равным 1). Переменная цикла может принимать не только целые, но и вещественные значения с любым знаком. Команды в тексте программы разделяются запятой <, >, точкой с запятой <; > или нажатием клавиши < Enter>. Ввод команд завершается командой end. Цикл завершается, как только значение var превысит b3. Команды между for и end воспринимаются системой как части одной сложной команды. Поэтому нажатие клавиши < Enter> для перехода к следующей строке не приводит в данном случае к выполнению этих команд. Выполнение команд начинается только тогда, когда введена «закрывающая скобка» сложной команды в виде ключевого слова end. Если несколько сложных команд такого типа вложены одна в другую, вычисления начинаются лишь тогда, когда записан конец ( end ) наиболее охватывающей (внешней) сложной команды. Например, для поиска суммы элементов матрицы A, расположенных ниже главной диагонали, в файл-функции Sn следует использовать два цикла for, причем начальное значение счетчика внутреннего цикла зависит от текущего значения счетчика внешнего цикла: function s=Sn(A) [n m]=size(A); s=0; for j=1: m for i=j+1: n s=s+A(i, j); end end В том случае, когда число повторений заранее неизвестно и определяется в ходе выполнения набора команд, следует организовать цикл while. Цикл while работает, пока выполнено условие цикла. Пример файл-функции polsum, которая находит сумму всех первых положительных элементов вектора: function s=polsum(x) s=0; k=1; while x(k)> 0 s=s+x(k); k=k+1; end Вызовем файл-функцию polsum из командной строки: > > a=[1 -2 3]; > > S=polsum(a) S = Файл-функция polsum имеет один недостаток: если все элементы вектора – положительные числа, то k становится больше длины вектора x, что приводит к ошибке, например: > > a=[1 2 3]; > > S=polsum(a) ??? Index exceeds matrix dimensions. Кроме проверки значения x(k), следует позаботиться о том, чтобы значение k не превосходило длины вектора x. Вход в цикл должен осуществляться только при одновременном выполнении условий k < = length(x) и x(k) > 0, т. е. необходимо применить логический оператор < И >, обозначаемый в MATLAB символом &. Заменим в файл-функции polsum условие цикла while x(k)> 0 на составное while k < = length(x)& x(k) > 0. Если первое из условий не выполняется, то второе условие проверяться не будет, именно поэтому выбран такой порядок операндов. Теперь файл-функция polsum будет работать верно для любых векторов: > > a=[1 2 3]; > > S=polsum(a) S = Как осуществляется ввод и редактирование команд в окне Command Window? Реагирование на ошибки в среде Matlab, обнаружение семантической ошибки командой pretty (В1Б27, В2Б1, В3Б22). Основным элементом командного режима работы с системой является главное или командное окно Command Window. Оно активизируется командой View => Desktop Layout => Command Window Only основного меню MATLAB. Текстовое поле окна Command Window располагается в двух принципиально разных зонах: зоне просмотра и зоне редактирования. Зона редактирования находится в командной строке, а вся остальная информация видимой части командного окна – в зоне просмотра. Пока не нажата клавиша < Enter>, вводимое выражение может быть отредактировано или удалено. В зоне просмотра уже ничего нельзя исправить. Если поместить в нее курсор и нажать какую - либо клавишу на клавиатуре, курсор будет автоматически перемещен в строку ввода, расположенную в зоне редактирования. В то же время, с помощью клавиш < ← > и < → > можно перемещать курсор в командной строке. Строка в текстовом поле командного окна, отмеченная символом приглашения > > с мигающим курсором, называется строкой ввода или командной строкой. Она предназначена для ввода с клавиатуры команд, чисел, имен переменных и знаков операций, составляющих выражение. Для того, чтобы система MATLAB выполнила введенную команду или вычислила заданное выражение, следует нажать клавишу < Enter> (Ввод). При вводе курсор может находиться в любом месте командной строки. Введенные выражения вычисляются, а результаты вычислений и выполнения команд появляются в одной или нескольких строках командного окна – строках вывода. Иногда требуется ввести в окне Command Window команду, которая слишком длинна, чтобы уместиться на одной строке. При приближении к концу строки можно ввести … (три последовательные точки), нажать клавишу < Enter> и продолжить набор команды на следующей строке. При этом вы не увидите на новой строке символа приглашения > >. При обнаружении ошибок в выражениях или командах MATLAB указывает на наличие ошибки. Надо отличать предупреждение об ошибке от сообщения о ней. Предупреждения (обычно после слова Warning ) не останавливают вычисления и лишь предупреждают о том, что ответ может быть ошибочным. При сообщении об ошибке красного цвета(после знаков??? ) MATLAB не выдает решение. Устранение ошибки наиболее целесообразно не путем набора нового правильного выражения, а редактированием ошибочного. При вычислениях любое арифметическое выражение набирается с клавиатуры в командной строке. Редактор MATLAB укажет на синтаксические ошибки. Но он не обнаружит так называемые семантические ошибки, когда, например, пользователь ошибочно заменит знаки операций < +> на < –> или неверной расстановкой скобок изменит общий порядок выполнения операций и т. д. Команда pretty выводит в командное окно символьное выражение в формате близком к математическому. |
Последнее изменение этой страницы: 2017-03-17; Просмотров: 1728; Нарушение авторского права страницы