Mercurial > repos > public > sbplib
diff +blockmatrix/toMatrix.m @ 427:a613960a157b feature/quantumTriangles
merged with feature/beams
author | Ylva Rydin <ylva.rydin@telia.com> |
---|---|
date | Thu, 26 Jan 2017 15:59:25 +0100 |
parents | 46aa0b6a10cd |
children | c14875cf7ae6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+blockmatrix/toMatrix.m Thu Jan 26 15:59:25 2017 +0100 @@ -0,0 +1,27 @@ +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 + % TODO: If this ever fails for large matrices. Try cell2mat instead. + A(n_ind(i)+1:n_ind(i+1),m_ind(j)+1:m_ind(j+1)) = bm{i,j}; + end + end +end