Mercurial > repos > public > sbplib
changeset 207:d521e17f72b6 feature/grids
blockmatrix: Added function to create zero blockmatrices.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 15 Jun 2016 16:55:40 +0200 |
parents | 50a323da7c7f |
children | 40dda96c8c9c |
files | +blockmatrix/zero.m +blockmatrix/zeroTest.m |
diffstat | 2 files changed, 68 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
diff -r 50a323da7c7f -r d521e17f72b6 +blockmatrix/zero.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+blockmatrix/zero.m Wed Jun 15 16:55:40 2016 +0200 @@ -0,0 +1,16 @@ +% Creates a block matrix according to the division with zeros everywhere. +function bm = zero(div) + n = div{1}; + m = div{2}; + + N = length(n); + M = length(m); + + bm = cell(N,M); + + for i = 1:N + for j = 1:M + bm{i,j} = sparse(n(i),m(j)); + end + end +end
diff -r 50a323da7c7f -r d521e17f72b6 +blockmatrix/zeroTest.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+blockmatrix/zeroTest.m Wed Jun 15 16:55:40 2016 +0200 @@ -0,0 +1,52 @@ +function tests = zeroTest() + tests = functiontests(localfunctions); +end + +function testZero(testCase) + cases = { + { + {[],[]}, + {}, + }, + { + {0,0}, + {[]}; + }, + { + {1,1}, + {0}; + }, + { + {2,1}, + {[0; 0]}; + }, + { + {1,2}, + {[0 0]}; + }, + { + {[1 2],2}, + {[0 0];[0 0; 0 0]}; + }, + { + {[1 2],[2 1]}, + {[0 0],[0];[0 0; 0 0],[0; 0]}; + }, + }; + + for i = 1:length(cases) + out = convertToFull(blockmatrix.zero(cases{i}{1})); + expected = cases{i}{2}; + testCase.verifyEqual(out,expected); + end +end + + +function C = convertToFull(C) + [N,M] = size(C); + for i = 1:N + for j = 1:M + C{i,j} = full(C{i,j}); + end + end +end \ No newline at end of file