# Divided a matrix into sub-matrices (MATLAB)

12 views (last 30 days)
Afluo Raoual on 8 Sep 2021
Answered: Walter Roberson on 8 Sep 2021
Dear members;
I have an empty matrix of dimensions (m*n)=(6*12) using:
H=zeros(m,n)
I have to fil this matrix with ones, in order to obtain J=3 ones in each column and K=6 ones in each row.
J=3; K=6;
Firstly, I want to divise this matrix H into J sub-matrices, each sub-matrix contains (n/K) rows and a nonzero element in each column.
Can anyone help me to program this step please

KSSV on 8 Sep 2021
H=zeros(m,n) ;
J = 3 ; K = 6 ;
H(:,J) = 1 ;
H(K,:) = 1 ;
Afluo Raoual on 8 Sep 2021
@KSSV Sorry, but that's not what I search for.
Using your code, I dont get the condition that I want ( I want to divise this matrix H into J sub-matrices, each sub-matrix contains (n/K) rows and a nonzero element in each column)

Walter Roberson on 8 Sep 2021
Firstly, I want to divise this matrix H into J sub-matrices, each sub-matrix contains (n/K) row
Are you sure about that? n is the number of columns, not the number of rows. It would seem to me to make more sense to divide into J sub-matrices each containing m/J rows.
m = 6; n = 12;
J=3; K=6;
H=zeros(m,n)
H = 6×12
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
split = mat2cell(H, (n/K) * ones(1,m*K/n), n)
split = 3×1 cell array
{2×12 double} {2×12 double} {2×12 double}
Not sure where you want to go from there.