Mercurial > repos > public > sbplib
diff +blockmatrix/getDivision.m @ 886:8894e9c49e40 feature/timesteppers
Merge with default for latest changes
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 15 Nov 2018 16:36:21 -0800 |
parents | a5f1b0267dba |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+blockmatrix/getDivision.m Thu Nov 15 16:36:21 2018 -0800 @@ -0,0 +1,42 @@ +function div = getDivision(bm) + if ~blockmatrix.isBlockmatrix(bm) + error('blockmatrix:getDivision:NotABlockmatrix', 'Input is not a blockmatrix'); + end + + if isempty(bm) + div = {[],[]}; + return + end + + div = {row_height(bm),col_width(bm)}; +end + + +function m = col_width(C) + m = zeros(1,size(C,2)); + for j = 1:size(C,2) + for i = 1:size(C,1) + if isNullMatrix(C{i,j}) + continue + end + m(j) = size(C{i,j},2); + end + end +end + +function n = row_height(C) + n = zeros(1,size(C,1)); + for i = 1:size(C,1) + for j = 1:size(C,2) + if isNullMatrix(C{i,j}) + continue + end + n(i) = size(C{i,j},1); + end + end +end + +function b = isNullMatrix(A) + [n, m] = size(A); + b = n == 0 && m == 0; +end