Выделите место для разреженной матрицы
S = spalloc(m,n,nz)
S = spalloc(m,n,nz)
создает всю нулевую разреженную матрицу S
из размера m
- n
с комнатой, чтобы содержать nz
ненули, где nz >= 1
. Матрица может затем быть сгенерированным столбцом столбцом, не требуя повторенного выделения ресурсов хранения, когда количество ненулей растет.
spalloc(m,n,nz)
сокращение для
sparse([],[],[],m,n,nz)
Если вы задаете значение 0
для nz
, затем spalloc
вместо этого устанавливает значение nz
к 1
.
Используйте spalloc
инициализировать n
- 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