Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 108
- 109
- 110
- 111
- 112
- …
- следующая ›
- последняя »
