MATLAB: How to modify a function to make it accept an array of arrays or a cell of arrays

cell arraysmatlab functionmatrix array

Hi All,
I found the attached file on internet, this file is a function that gives all the combinations of all elements of the given arrays.
ex1:
>> allcomb([1 2],[3 4])
ans =
1 3
1 4
2 3
2 4
Now, my question is how we can change on this function to make is accept a cell of arrays or an array of arrays.
ex2:
if we have the following code:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
close all
for i=1:2
p{i}=[2^i-1 2^(i)];
end
allcomb(p)%This line does not work.
Cell={};
for i =1:max(size(p))
Cell{i}=p{i};
end
allcomb(Cell)%This line does not work.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The lines that have the comment "%This line does not work." do not give the same answer as ex1.
Could you help me please?.

Best Answer

  • This is the correct answer: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    clc
    clear all
    close all
    for i=1:2
    p{i}=[2^i-1 2^(i)];
    end
    Cell={};
    for i =1:max(size(p))
    Cell{i}=p{i};
    end
    allcomb(Cell{:})
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    The output:
    ans =
    1 3
    1 4
    2 3
    2 4