diff +blockmatrix/multiply.m @ 388:288138d9586d feature/beams

Add function to multiply blockmatrices.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 09 Jan 2017 11:20:28 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/+blockmatrix/multiply.m	Mon Jan 09 11:20:28 2017 +0100
@@ -0,0 +1,17 @@
+function C = multiply(A, B)
+    [n_a, m_a] = size(A);
+    [n_b, m_b] = size(B);
+
+    assert(m_a == n_b, 'Dimensions do not agree.')
+
+    C = cell(n_a, m_b);
+
+    for i = 1:n_a
+        for j = 1:m_b
+            C{i,j} = sparse(size(A{i,1},1), size(B{1,j},2));
+            for k = 1:n_b
+                C{i,j} = C{i,j} + A{i,k}*B{k,j};
+            end
+        end
+    end
+end