1 view (last 30 days)

Show older comments

Hi everyone, just having this thought. I have two matrices A and B.

A = [1 1 1 0;

1 1 0 0;

0 1 0 1;];

B = [1 2;

1 3;

2 4;

1 5;];

I want to create C by allocating each row of B, depending whether A rows has zero or one. For example, row 1 of A with 1 1 1 0, first coloum is 1 so allocate 1 2; colum 2 is 1 3; column 3 is 2 4; column 4 is empty. Image below how it should look like in C.

madhan ravi
on 28 Aug 2019

c=repmat(1:size(A,2),size(A,1),1);

v=(A==1) .* c;

vv=cell2mat(arrayfun(@(x) B(x,:),nonzeros(v.'),'un',0));

Rows_of_A=mat2cell(vv,sum(A,2));

celldisp(Rows_of_A)

madhan ravi
on 28 Aug 2019

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

Start Hunting!