Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Об использовании операции формирования диапазона




Удаление строк и столбцов матрицы

Создавать новые массивы можно также путём удаления строк и столбцов исходных массивов. Для этих целей используются парные квадратные скобки ([ ]), которые в системе MATLAB обозначают пустой массив. Пусть, например, требуется удалить вторую строку матрицы R:

 

>> R=[3 2 4 1; -3 -6 -5 7; 0 1 8 2]

R=

3 2 4 1

-3 -6 -5 7

0 1 8 2

 

С этой целью присвоим второй строке матрицы R пустой массив, используя квадратные скобки:

 

>> R (2,:)=[ ]

R=

3 2 4 1

0 1 8 2

 

Аналогично можем удалить второй и третий столбцы получившейся в результате матрицы

 

>> R (:, 2: 3)=[ ]

R=

3 1

0 2

 

Использование функций перестановки частей матриц.

 

Отметим, что в системе MATLAB существует также несколько функций, позволяющих формировать новые массивы посредством перестановки частей имеющихся матриц. Это, например, функция fliplr, которая переставляет столбцы заданной матрицы относительно вертикальной оси:

 

>> N=[1 2 3 4; 5 6 7 8; 9 10 11 12]

N=

1 2 3 4

5 6 7 8

9 10 11 12

>> Np=fliplr (N)

Np=

4 3 2 1

8 7 6 5

12 11 10 9

 

Функция flipud переставляет строки заданной матрицы относительно горизонтальной оси (столбцы матрицы переворачиваются «вверх ногами»):

 

>> Np=flipud (N)

Np=

9 10 11 12

5 6 7 8

1 2 3 4

 

Заметим, что функция flipdim (N, dim) осуществляет переворот относительно размерности с номером dim. В частности, команда flipdim (N, 1) реализует перестановку строк, а flipdim (N, 2) — перестановку столбцов.

 

Функция rot90 «поворачивает» заданную матрицу на 90 градусов против часовой стрелки:

 

>> Np=rot90 (N)

Np=

4 8 12

3 7 11

2 6 10

1 5 9

 

Функция rot90 (N, k) «поворачивает» заданную матрицу N на 90 градусов против часовой стрелки k раз, например:

 

>> Np=rot90 (N, 2)

Np=

12 11 10 9

8 7 6 5

4 3 2 1

 

Об ускорении операций задания массива

 

В рассмотренной ситуации вместе с тем имеется несколько простых способов существенно увеличить скорость работы MATLAB. Во-первых, можно предварительно выделить всю необходимую память под конечный размер массива, используя для этих целей, в частности, вызовы функций ones или zeros, которые сразу задают массив нужного размера, заполненный соответственно единицами или нулями. В дальнейшем постепенное присвоение элементам нужных значений не будет сопровождаться перестройкой структуры памяти, отведённой под массив, вследствие чего будет достигнут выигрыш во времени. Так, например, для массива a можно перед присваиванием осуществить следующий вызов функции:

 

>> a=ones (1, 3)

a=

1 1 1

 

где вывод в командное окно результата вызова функции ones показывает, что сразу создаётся массив из трёх элементов, равных единице. Далее можно реализовать показанные выше присваивания нужных значений элементам массива a.

 

Во-вторых, можно осуществить присваивание значений элементам массива a в обратном порядке — начиная с последних по номеру элементов и заканчивая первым:

 

>> a=ones (1, 3)

a=

1 1 1

>> a (3)=0.05;

>> a (2)=-1.4;

>> a (1)=0.8;

 

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

 

Поясним, что функция ones используется для создания матрицы, состоящей из единиц. Она принимает два аргумента, первым из которых задаётся количество строк, а вторым — количество столбцов формируемой матрицы. Если данная функция задана с одним аргументом, то будет создана квадратная матрица соответствующего вида. Для создания матрицы, состоящей из нулей (нулевой матрицы), предназначена функция zeros. Она также может быть задана с одним или двумя аргументами.

 

Об использовании операции формирования диапазона

 

Ещё один способ создания одномерных массивов основан на применении специальной операции, обозначаемой двоеточием (:) и называемой «операцией формирования диапазона» числовых значений. Ниже приведён пример формирования одномерного массива чисел в диапазоне от 2 до 7 с приращением (шагом) равным 0.1:

 

>> s=2: 0.1: 7;

 

Поясним ещё раз, как работает эта операция. Сначала она включает в создаваемый массив левую границу диапазона (это число, стоящее левее первого многоточия). Далее к этому числовому значению прибавляется приращение (это число, стоящее сразу после первого многоточия). Если полученная сумма не превосходит верхней границы диапазона (это число, стоящее правее второго многоточия), то она включается в качестве элемента в создаваемый массив. Всё это повторяется до тех пор, пока очередное числовое значение не превысит верхнюю границу.

 

Как и в ряде языков программирования в MATLAB допускается существование пустых массивов, не содержащих ни одного элемента, например:

 

>> y=[ ]

y =

[ ]

 





Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 266 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2370 - | 2121 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.