Mercurial > repos > public > sbplib
diff +blockmatrix/toMatrix.m @ 206:50a323da7c7f feature/grids
blockmatrix: Added function to convert blockmatrix to a regular matrix.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 15 Jun 2016 16:31:24 +0200 |
parents | |
children | 46aa0b6a10cd |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+blockmatrix/toMatrix.m Wed Jun 15 16:31:24 2016 +0200 @@ -0,0 +1,26 @@ +function A = toMatrix(bm) + if ~blockmatrix.isBlockmatrix(bm) + error('blockmatrix:toMatrix:NotABlockmatrix', 'Input is not a blockmatrix'); + end + + div = blockmatrix.getDivision(bm); + n = div{1}; + m = div{2}; + + N = sum(n); + M = sum(m); + + A = sparse(N,M); + + n_ind = [0 cumsum(n)]; + m_ind = [0 cumsum(m)]; + + for i = 1:size(bm,1) + for j = 1:size(bm,2) + if isempty(bm{i,j}) + continue + end + A(n_ind(i)+1:n_ind(i+1),m_ind(j)+1:m_ind(j+1)) = bm{i,j}; + end + end +end