Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
4.6 Mб
Скачать

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

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

>> a=ones(1,3)

a =

1 1 1

где вывод в командное окно результата вызова функции ones показывает, что сразу создается массив из трех элементов, равных единице. Далее можно реализовать показанные выше присваивания нужных значений элементам массива 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.14.3. Об использовании операции формирования диапазона.

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

>> s=2:0.1:7;

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

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

>> y=[]

y =

[]

§ 2.15. Матрицы и векторы. Двумерные массивы чисел

В первой части настоящей главы был кратко рассмотрен вопрос создания векторов и матриц (двумерных числовых массивов) с помощью операции конкатенации. В данном параграфе будут рассмотрены и иные способы их создания, а также некоторые важные дополнительные вопросы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]