Выделите место для разреженной матрицы
S = spalloc (m, n, nz)
S = spalloc(m,n,nz) создает всю нулевую разреженную матрицу S размера m-by-n с комнатой, чтобы содержать ненули nz, где nz >= 1. Матрица может затем быть сгенерированным столбцом столбцом, не требуя повторенного выделения ресурсов хранения, когда количество ненулей растет.
spalloc(m,n,nz) является сокращением для
sparse([],[],[],m,n,nz)
Если вы задаете значение 0 для nz, то spalloc вместо этого устанавливает значение nz к 1.
Используйте spalloc, чтобы инициализировать n-by-n пустая разреженная матрица с пробелом для ненулей 3*n. Затем используйте for - цикл, чтобы заполнить столбцы S по одному. Результатом является трехдиагональная матрица приблизительно с 50%-й плотностью полосы.
S = spalloc(n,n,3*n);
for j = 1:n
ind = [max(j-1,1) j min(j+1,n)];
S(:,j) = sparse(ind,1,round(rand(3,1)),n,1,3);
end
nnz | nzmax | разреженный