Divided a matrix into sub-matrices (MATLAB)

3 views (last 30 days)
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

Answers (2)

KSSV
KSSV on 8 Sep 2021
H=zeros(m,n) ;
J = 3 ; K = 6 ;
H(:,J) = 1 ;
H(K,:) = 1 ;
  1 Comment
Afluo Raoual
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)

Sign in to comment.


Walter Roberson
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.

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!