diff +blockmatrix/fromMatrix.m @ 211:3c4ffbfbfb84 feature/beams

Merged feature/grid into feature/beams
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 16 Jun 2016 10:56:47 +0200
parents 40dda96c8c9c
children 3974dccff55b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/+blockmatrix/fromMatrix.m	Thu Jun 16 10:56:47 2016 +0200
@@ -0,0 +1,24 @@
+function bm = fromMatrix(A, div)
+    d1 = div{1};
+    d2 = div{2};
+    [n, m] = size(A);
+    if n ~= sum(d1) || m ~= sum(d2)
+        error('blockmatrix:fromMatrix:NonMatchingDim','The dimensions in div does not sum to the dimensions in A.');
+    end
+
+    bm = cell(length(d1), length(d2));
+    I = 1;
+    for i = 1:length(d1)
+        J = 1;
+        for j = 1:length(d2)
+            Asub = A(I:(I + d1(i)-1), J:(J + d2(j)-1));
+            if nnz(Asub) == 0
+                bm{i,j} = [];
+            else
+                bm{i,j} = Asub;
+            end
+            J = J + d2(j);
+        end
+        I = I + d1(i);
+    end
+end
\ No newline at end of file