SVD for bipartitioned matrix x. SIMULTANEOUS SOLUTIONS. ("simultaneous svdbip")
1  svdbips(x,K,H,r)

x 
is a p x q matrix 
K 
is a row vector which contains the numbers pk, k=1,...,kx, of the partition of x with kx row blocks : ∑_k p_k=p 
H 
is a row vector which contains the numbers qh, h=1,...,ky, of the partition of x with ky column blocks : ∑_h q_h=q 
r 
is the wanted number of solutions 
One set of r solutions is calculated by maximizing ∑_i ∑_k ∑_h (u_k[,i]'*x_{kh}*v_h[,i])^2, with kx+ky orthonormality constraints (for each uk and each vh). For each fixed r value, the solution is totally new (does'nt consist to complete a previous calculus of one set of r1 solutions). rmax=min([min(K),min(H)]). When r=1, it is svdbip (thus it is svdcp when r=1 and kx=1).
Convergence of algorithm may be not global. So the below proposed initialisation of the algorithm may be not very suitable for some data sets. Several different random initialisations with normed vectors might be considered and the best result then choosen....
list with following components
u 
is a p x r matrix of kx row blocks uk (pk x r); uk'*uk = Identity 
v 
is a q x r matrix of ky row blocks vh (qh x r); vh'*vh = Identity 
s2 
is a kx x ky x r array; for a fixed solution k, each matrix s2[,,k] contains kxky values (u_h'*x_{kh}*v_k)^2, the "partial (squared) singular values" relative to x_{kh}. 
Lafosse R. & Ten Berge J. A simultaneous CONCOR method for the analysis of two partitioned matrices. submitted.
1 2 3 
Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.