Читайте также:
|
|
Во встроенном языке Matlab’а нет явных операторов ввода–вывода данных в командное окно. Проблема ввода данных в нём решается оператором присваивания и использованием системных констант. К системным константам относятся:
- Pi – число p = 3.1415…;
- i или j – мнимая единица ;
- NaN – неопределенность вида 0/0;
- Inf – бесконечность типа 1/0;
- ans – идентификатор результата последней операции
и другие.
Вывод данных осуществляется еще проще. Для этого необходимо после математического выражения не ставить точку с запятой «;».
Как известно, в Matlab’е при вычислениях в числе сохраняется 15 цифр. Однако при выводе результатов вычислений в командное окно по умолчанию выдаются числа с 4 цифрами после десятичной точки в действительной форме. Эту форму вывода данных можно менять. Для этого в программе перед выводимой величиной следует использовать команду format name, где name – имя формата, которое для числовых данных имеет следующие значения:
§ short – короткое представление числа в фиксированном формате из 5-ти знаков и десятичной точки;
§ short е – короткое представление числа в экспоненциальной форме с 5-ю знаками мантиссы и 3-я знаками порядка;
§ long – длинное представление числа в фиксированном формате из 15-ти знаков и десятичной точки;
§ long е – длинное представление числа в экспоненциальной форме с 15-ю знаками мантиссы и 3-я знаками порядка.
В качестве примера можно привести фрагменты программы, организующие вывод компонент вектора из двух элементов. При командах
format short
x = [5/3 1.2345e-7]
будет выведено
1.6667 0.0000
При
format short e
x = [5/3 1.2345e-7]
будет выведено
1.6667E+000 1.2345E–007
При
format long
x = [5/3 1.2345e-7]
будет выведено
1.66666666666667 0.00000012345000
При
format long e
x = [5/3 1.2345e-7]
будет выведено
1.66666666666667E+000 1.2345000000000E-007
Иные способы ввода и вывода информаци будут описаны ниже.
Векторы и матрицы
Matlab изначально был предназначен для выполнения вычислений с векторами и матрицами. Поэтому по умолчанию предполагается, что каждая переменная, в том числе и скалярная – это вектор или матрица. Например, если в программе задано х=1, то это значит, что переменная х – вектор с одним элементом, равным 1. Если надо задать вектор из трех элементов 2.87, 3.62 и 4.12, то их значения надо перечислить в квадратных скобках, разделяя пробелами, например
>>V = [2.87 3.62 4.12].
В данном случае задан вектор–строка. Если разделить элементы точкой с запятой, то получим вектор–столбец
>>V = [2.87; 3.62; 4.12].
Матрицы в Matlab’е задаются построчно. Для разграничения строк используется точка с запятой «;». Например, для задания матрицы
следует записать
>>Т = [2 -1 4 2; 3 5 -1 4; -2 8 0 -1].
Для указания отдельного элемента вектора или матрицы используются их индексация. Например, если элементу Т(i,j) надо присвоить новое значение х, то используют оператор присваивания вида
>>Т(3,2) = х;
Аналогично организуется обращение к элементам матрицы, например
>>z=Т(3,2)^2+2;
Наряду с операциями над отдельными элементами матриц и векторов Matlab позволяет выполнять арифметические операции сразу над всеми элементами. Для этого перед знаком операции ставится точка (см. табл.1).
Имеются также ряд особых функций для задания векторов и матриц. Следует отметить функции ones и zeros. Функция ones создает матрицу или вектор с единичными элементами
® >> а = ones(3,2)
Функция zeros создает массив с нулевыми элементами
® >> B = zeros(3,4)
Следует отметить одну особенность вывода матриц в командное окно. Если элементы каждой строки матрицы не помещаются в командное окно, то Matlab выводит подзаголовок каждой строки, в котором указывает номера её элементов. Так вектор из 11-ти элементов будет выведен следующим образом
y =
Columns 1 through 7
1.0000 1.0000 1.2397 1.7126 1.9835 1.6161 1.2249
Columns 8 through 11
0.9708 0.8441 0.7278 0.6613
Оператор двоеточие «:»
При программировании бывает необходимо формирование числовых последовательностей разного вида. В частности, они требуются для создания векторов или значений аргумента х при построении графиков. В Matlab’е для этого используется оператор двоеточие «:», который представляется следующим образом:
х= Начальное_значение:Шаг:Конечное_значение;
Эта конструкция создает возрастающую арифметическую последовательность чисел, которая начинается с начального значения, изменяется на заданный шаг и завершается конечным значением. Эти значения записываются в память ЭВМ в виде массива. Если шаг последовательности не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, то выдается сообщение об ошибке.
Оператор разветвления if
Условный оператор if в Matlab’е записывается в общем виде следующим образом
if «логическое выражение»
Операторы 1
elseif «логическое выражение»
Операторы 2
else
Операторы 3
end;
Эта конструкция имеет несколько частных вариантов:
if «логическое выражение»
Операторы 1
end;
или
if «логическое выражение»
Операторы 1
else
Операторы 2
end;
В запись Операторы могут входить один или несколько операторов. В последнем случае они разделяются символами «,» (запятой) или «;» (точкой с запятой).
Простое логическое выражение в операторе if имеет следующую структуру
Выражение 1 «оператор отношения» Выражение 2
где операторы отношения описаны в табл.2. Примером записи одного из вариантов оператора if может служить следующая конструкция
if x>=y^2+1
z = sqrt(x^2 + y^2);
t = 1/(x + y^2);
else
z = 0;
t = 0;
end;
Из простых логических выражения могут создаваться сложные с применением логических операций, приведённых в табл.3. Например
if or(and(x>y^2,x<2),x>=4)
Если логическое выражение в операторе if принимает значение 1 (true – истина), то выполняются операторы, следующие за ним. В противном случае, когда логическое выражение принимает значение 0 (false – ложь), операторы, следующие за логическим условием, не выполняются.
Оператор end указывает на конец зоны действия условного оператора if.
Операторы циклов
В Matlab’е существует три типа операторов цикла. Один из них – оператор for…end используется для организации цикла с фиксированным числом повторений. Он имеет вид:
for x = выражение
Операторы
end;
Здесь x – счетчик цикла, в качестве которого может быть любая переменная, обычно это i, j, k, l, m и так далее. Выражение в этом операторе имеет структуру
начальное значение: шаг: конечное значение
Возможна запись в виде
начальное значение: конечное значение
тогда шаг = 1.
Список операторов завершается ключевым словом end, ограничивающим зону действия оператора for.
С помощью оператора for можно организовывать вложенные циклы, например
for i = 1: 3
for j = 1: 3
a(i,j) = i*j;
end;
end;
В результате выполнения этого двойного цикла формируется матрица
.
Вторым оператором цикла является конструкция типа while…end. Она имеет вид
while «логическое выражение»
Операторы
end;
Её операторы выполняются до тех пор, пока выполняется условие, заданное логическим выражением.
Здесь следует упомянуть операторы continue и break. Оператор continue передает управление в следующую итерацию цикла, пропуская операции, которые записаны за ним, а оператор break используется для досрочного прерывания цикла.
Дата добавления: 2015-07-08; просмотров: 92 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Контрольные задания | | | Вывод информации в файл |