Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Как осуществляется ввод и редактирование команд в окне Command Window? Реагирование на ошибки в среде Matlab, обнаружение семантической ошибки командой pretty (В1Б27,В2Б1,В3Б22).



Как осуществляется ввод и редактирование команд в окне 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. Операторы отношения и их функции

Оператор Название Функция
== Равно Eq
~= Не равно Ne
< Меньше Lt
> Больше Gt
< = Меньше или равно Le
> = Больше или равно Ge

 

Операторы = = и ~= сравнивают действительные и комплексные переменные. При этом сравниваются действительные и комплексные части числа.

Операторы <, < =, >, > = при сравнении комплексных чисел сравнивают только действительные части числа.

Примеры приведены в табл. 4.2.

 

Таблица 4.2. Примеры использования операторов отношения

Выражение Функция Результат
> > 3==3 > > eq(3, 3) ans =
> > 5~=5 > > ne(5, 5) ans =
> > 4+2i==4+i > > eq(4+2i, 4+i) ans =
> > 7.2< 8.3 > > lt(7.2, 8.3) ans =
> > 1.4+5i< 1.5+i > > lt(1.4+5i, 1.5+i) ans =
> > 3< =2.33 > > le(3, 2.33) ans =

 

Если при вычислениях надо формально определить, является ли переменная x комплексной, можно вызвать функцию isreal(x), возвращающую 1 если x не является комплексной и 0 в противном случае.

В выражениях, вводимых в командном окне системы MATLAB, операторы отношения могут использоваться наряду с арифметическими операторами.

В операторах отношения допустимо сравнение массива и числа. В этом случае происходит сравнение каждого элемента массива с числом.

Логические операторы предназначены для выполнения поэлементных логических операций над массивами одинаковых размеров. Логические операторы и соответствующие им функции приведены в табл. 4.3.

Таблица 4.3. Логические операторы и их функции

Оператор Название Функция
& Логическое И And
| Логическое ИЛИ Or
Отсутствует Исключающее ИЛИ Xor
~ Логическое НЕ Not

 

Первые три операции являются двухоперандными (бинарными), а операция < Не > является унарной (однооперандной).

При выполнении логических операций «истинными» считаются операнды, не равные нулю, а «ложными» – операнды, равные нулю. При этом результатом операции < И > будет 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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.051 с.)
Главная | Случайная страница | Обратная связь