Date: Apr 8, 2013 1:52 PM
Author: Bruno Luong
Subject: Re: "Expanding matrices"

Phase1 = [1; 2];
Phase2 = [3 5;
4 6];
Phase3 = [7;
8;
9];

PhaseIn = { Phase1 Phase2 Phase3 }; % add more arrays if you like

% Engine
n = cellfun(@(x) 1:size(x,1), PhaseIn, 'Unif', 0);
[n{:}] = ndgrid( n{end:-1:1});
m = length(n);
n = cat(m+1,n{end:-1:1});
n = reshape(n,[],m);
Phase = arrayfun(@(j) PhaseIn{j}(n(:,j),:), 1:m, 'Unif', 0);
Phase = cat(2, Phase{:});
disp(Phase)

% Bruno