Выделите место для разреженной матрицы
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