Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 110 стр.

UptoLike

Составители: 

108
[m,n] = size(A);
%Определить количество строк и столбцов
блока А.
mind = (1:n)’;
nind = (1:n)';
%Векторизовать индексы в соответствии с
количеством вертикальных и горизонталь-
ных блоков.
mind = mind(:,
ones(1, M));
nind = nind(:,
ones(1, N));
B = A(mind, nind);
%Сформировать матрицы индексов для раз-
мещения блока А.
Предварительное выделение памяти. В системе MATLAB
есть возможность для существенного сокращения времени выполне-
ния программы за счёт предварительного размещения массивов для
выходных данных. Предварительное распределение избавляет от не-
обходимости изменять массив при увеличении его размеров. Исполь-
зуйте соответствующие функции предварительного выделения памя-
ти, как это показано в таблице для различных типов
массивов:
Тип масси-
ва
Функция Примеры
Массив чи-
сел
zeros
y = zeros(1, 100)
for i = 1:100
y(i) = det(X^i);
end
Массив за-
писей
struct data = struct([1 3], 'x', [1 3],
'y', [5 6])
data(3).x = [9 0 2];
data(3).y = [5 6 7];
Массив яче-
ек
cell
B = cell(2, 3)
B{1, 3} = 1:3;
B{2, 2} = 'string';
Предварительное выделение памяти позволяет избежать
фрагментации памяти при работе с большими матрицами. В ходе се-
анса работы системы MATLAB, память может стать фрагментирован-
                      %Определить количество строк и столбцов
[m,n] = size(A);
                      блока А.
                      %Векторизовать индексы в соответствии с
mind = (1:n)’;
                      количеством вертикальных и горизонталь-
nind = (1:n)';
                      ных блоков.
mind = mind(:,
ones(1, M));
                      %Сформировать матрицы индексов для раз-
nind = nind(:,
                      мещения блока А.
ones(1, N));
B = A(mind, nind);

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

        Тип масси-
                      Функция       Примеры
        ва
        Массив чи-    zeros         y = zeros(1, 100)
        сел                         for i = 1:100
                                       y(i) = det(X^i);
                                    end

        Массив за-    struct        data = struct([1 3], 'x', [1 3],
        писей                       'y', [5 6])
                                    data(3).x = [9 0 2];
                                    data(3).y = [5 6 7];
        Массив яче-   cell          B = cell(2, 3)
        ек                          B{1, 3} = 1:3;
                                    B{2, 2} = 'string';


        Предварительное выделение памяти позволяет избежать
фрагментации памяти при работе с большими матрицами. В ходе се-
анса работы системы MATLAB, память может стать фрагментирован-

108