How to combine two or more than two matrix
4 views (last 30 days)
Show older comments
Please help me. Here is Example
a=[1 0 1, 1 1 0, 1 1 1] and b=[0 1, 1 0 ]
I want combine these two matrix with each possible combination such as
1 0 1 01
1 0 1 10
1 1 0 01
1 1 0 10
1 1 1 01
1 1 1 10
Total possible solutions are 3(rows of a)*2(rows of b)=6
I have A=119*9 and B=75*12
0 Comments
Accepted Answer
Stephen23
on 7 Sep 2016
Edited: Stephen23
on 7 Sep 2016
>> a = [1,0,1;1,1,0;1,1,1];
>> b = [0,1;1,0];
>> cell2mat(allcomb(num2cell(a,2),num2cell(b,2)))
ans =
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 0
1 1 1 0 1
1 1 1 1 0
There is also the special case where the number rows are not multiples of each other:
>> [repmat(a,size(b,1),1),repmat(b,size(a,1),1)]
ans =
1 0 1 0 1
1 1 0 1 0
1 1 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 1 1 0
3 Comments
Christos Traianos
on 21 Dec 2021
Hi! Thanks for the answer! How [repmat(a,size(b,1),1),repmat(b,size(a,1),1)] could be used for n number of double arrays?
Thanks in advance!
Stephen23
on 21 Dec 2021
@Christos Traianos: using ALLCOMB is probably the simplest approach:
C = {[1,0,1;1,1,0;1,1,1],[0,1;1,0]}; % any number of matrices
D = cellfun(@(m)num2cell(m,2),C,'uni',0);
M = cell2mat(allcomb(D{:}))
More Answers (0)
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!