function [A1, A2, B1, B2, C11, C12, C21, C22] = partition_matrix_vec_3(A, B, C, n1, n2, bs) dom = myunion(n1, n2); n1i = block(find_equiv_posns(n1, dom), bs(dom)); n2i = block(find_equiv_posns(n2, dom), bs(dom)); A1 = A(n1i); A2 = A(n2i); if isempty(B) B1 = zeros(size(n1i, 2),size(B, 2)); B2 = zeros(size(n2i, 2),size(B, 2)); else B1 = B(n1i, :); B2 = B(n2i, :); end C11 = C(n1i, n1i); C12 = C(n1i, n2i); C21 = C(n2i, n1i); C22 = C(n2i, n2i);