Создание и использование массивов
Для присваивания значений массиву необходимо значения элементов массива перечислить в квадратных скобках, разделяя их пробелами.
Пример
»v=[1 5 3]
v=
1 5 3
В этом примере мы задали вектор v (одномерный массив) со значениями элементов 1, 5, 3. Задание матрицы (двухмерного массива) требует указания различных строк. Для различения строк используется ; (точка с запятой).
Пример
» m=[1 3 2; 5 6 4; 6 7 8]
m=
1 3 2
5 6 4
6 7 8
Для указания отдельного элемента массива используется имя массива и круглые скобки, внутри которых указываются индексы, разделенные запятыми. Индексация элементов массива производится с единицы.
Пример
»m=[1 2 3; 4 5 6;7 8 9];
»m(1,1)=5;
»m(3,3) = m(1,1) + m(3,3);
»m=
5 2 3
4 5 6
7 8 14
Для формирования упорядоченных числовых последовательностей в MATLAB применяется оператор : (двоеточие):
Начальное_значение: Шаг: Конечное_значение
Данная конструкция порождает последовательность (массив) чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если шаг не задан, то он принимает значение 1.
Пример
»i=1:6
i=
1 2 3 4 5 6
»x=0:0.5:3
x=
0 0.5000 1.0000 1.5000 2.0000 2.500 3.0000
»x=3:-0.5:0
x=
3.000 2.5000 2.0000 1.5000 1.0000 0.5000 0
Оператор ( : ) использует следующие правила для создания векторов:
-
j : k – то же, что и [j j+l,...,k];
-
j : k – пустой вектор, если j>k;
-
j : i : k – то же, что и [j, j+i, j+2i, ..., k];
-
j : i : k – пустой вектор, если i>0 и j>k или если i<0 и j<k, где i, j и k - скалярные величины.
Ниже показано, как выбирать с помощью оператора ( : ) строки, столбцы и элементы из векторов, матриц и многомерных массивов:
-
А( :, j ) – это j-й столбец из А;
-
А( i, : ) – это i-я строка из А;
-
А( : , : ) – эквивалент двумерного массива.
-
A( j : k ) - это A(j), A(j+l), ..., A(k);
-
A( : j : k ) - это A( : , j), A(: , j+l), ..., A( : , k);
-
А( : , : , k ) – это k-я страница трехмерного массива А;
-
A( i j k : ) – вектор, выделенный из четырехмерного массива А. Вектор включает элементы А( i j k l ), A( i j k, 2 ), A( i j k 3) и т. д.;
-
А( : ) – записывает все элементы массива А в виде столбца.
Символы ( ) (круглые скобки) используются для задания порядка выполнения операций в арифметических выражениях, указания последовательности аргументов функции и указания индексов элемента вектора или матрицы.
[.] – горизонтальная конкатенация. Так, [А.В] – горизонтальная конкатенация (объединение) матриц А и В. А и В должны иметь одинаковое количество строк. [А В] действует аналогично. Горизонтальная конкатенация может быть применена для любого числа матриц в пределах одних скобок: [А,В,С]. Горизонтальная и вертикальная конкатенации могут использоваться одновременно: [А,В:С].
[:] – вертикальная конкатенация. Так, [А:В] – вертикальная конкатенация (объединение) матриц А и В. А и В должны иметь одинаковое число столбцов. Вертикальная конкатенация может быть применена для любого числа матриц в пределах одних скобок: [А:В:С]. Горизонтальная и вертикальная конкатенации могут использоваться одновременно: [А:В,С].
Перенос строк. Комментарии
Если для выражения не хватает одной строки или мы не желаем заходить в невидимую область окна, то выражение можно перенести на новую строку с помощью многоточия … (3 точки).
Комментарий в системе Matlab должен начинаться символом %. В Scilab комментарий задаётся двойной косой чертой //.
-
Матричные операции
Создание единичной матрицы
Для создания единичной матрицы (она обычно обозначается как Е) служит функция eye:
-
еуе(n) — возвращает единичную матрицу размера nxn;
-
eye(m, n) — возвращают матрицу размера mxn с единицами по диагонали и нулями в остальных ячейках;
Создание матрицы с единичными элементами
Для создания матриц, все элементы которых — единицы, используется функция ones:
-
ones(n) — возвращает матрицу размера nхn, все элементы которой — единицы. Если п — не скаляр, то появится сообщение об ошибке;
-
ones(m, n) — возвращают матрицу размера mxn, состоящую из единиц;
Создание матрицы с нулевыми элементами
Иногда нужны матрицы, все элементы которых — нули. Следующая функция обеспечивает создание таких матриц:
-
zeros(n) — возвращает матрицу размера nхn, содержащую нули. Если n — не скаляр, то появится сообщение об ошибке;
-
zeros(m, n) — возвращают матрицу размера mxn, состоящую из нулей;
Суммирование элементов. Вычисление минимального и максимального элемента
Определены следующие функции суммирования элементов массивов:
Matlab | Scilab |
sum(A) — возвращает сумму элементов массива, если А — вектор, или вектор-строку, содержащую сумму элементов каждого столбца, если А — матрица | sum(A [,fl]) - вычисляет сумму элементов массива X, имеет необязательный параметр fl. Если параметр fl отсутствует, то функция sum(A) возвращает скалярное значение, равное сумме элементов массива. Если fl=’r’, то функция вернет строку, равную поэлементной сумме столбцов матрицы A. Если fl=’с’, то результатом работы функции будет вектор-столбец, каждый элемент которого равен сумме элементов строк матрицы A. |
max (A) — возвращает максимальный элемент массива, если А — вектор, или вектор-строку, содержащую максимальный элемент каждого столбца, если А — матрица | max(A [,fl]) - вычисляет наибольший элемент в массиве A, имеет необязательный параметр fl (аналогично функции sum) |
min (A) — возвращает минимальный элемент массива, если А — вектор, или вектор-строку, содержащую минимальный элемент каждого столбца, если А — матрица | min(A [,fl]) - вычисляет наименьший элемент в массиве A, работает аналогично функции max |
- Краткие сведения о средах моделирования Matlab и Scilab
- Работа в Matlab и Scilab
- Элементы программирования на языках Matlab и Scilab
- Операция присваивания
- Константы
- Арифметические операции. Функции
- Операторы отношения и их функции
- Логические операторы
- Создание и использование массивов
- Определитель матрицы
- Обращение матриц — функции inv, pinv
- Определение размерности матриц
- Построение графиков функций в Matlab и Scilab Построение графиков
- Изображение сетки в графической области
- Создание m-файлов-функций в Matlab
- Редактирование и отладка файлов-сценариев Scilab
- Структура функций Scilab
- Управляющие структуры языка программирования Matlab и Scilab
- Диалоговый ввод-вывод
- Циклы типа for-end
- Циклы типа while_end
- Условный оператор if-elseif-else-end
- Переключатель
- Решение обыкновенных дифференциальных уравнений
- Решение дифференциальных уравнений
- Решение обыкновенных дифференциальных уравнений в среде Scilab