matthiasm@8: function [W, b] = extract_params(CPD) matthiasm@8: matthiasm@8: % W(X,Y,Q), b(Y,Q) where Y = ns(self), X = ns(cps), Q = prod(ns(dps)) matthiasm@8: matthiasm@8: glimsz = prod(CPD.sizes(CPD.dpndx)); matthiasm@8: ss = CPD.sizes(end); matthiasm@8: cpsz = sum(CPD.sizes(CPD.cpndx)); matthiasm@8: dp_as_cpsz = sum(CPD.sizes(CPD.dps_as_cps.ndx)); matthiasm@8: W = zeros(dp_as_cpsz + cpsz, ss, glimsz); matthiasm@8: b = zeros(ss, glimsz); matthiasm@8: matthiasm@8: for i=1:glimsz matthiasm@8: W(:,:,i) = CPD.glim{i}.w1; matthiasm@8: b(:,i) = CPD.glim{i}.b1(:); matthiasm@8: end matthiasm@8: matthiasm@8: W = myreshape(W, [dp_as_cpsz + cpsz ss CPD.sizes(CPD.dpndx)]); matthiasm@8: b = myreshape(b, [ss CPD.sizes(CPD.dpndx)]);