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
--- /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
--- /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