Create a multidimensional Grid
    3 views (last 30 days)
  
       Show older comments
    
Hi, 
i try to create a multidimensional grid with these scalar values but i cannot wrap my head around how the code would look like if i use more than 2 or 3 Factors (I obviously don't want to make for each possible number of Factors an extra 
if isequal(length(Factors),2), if isequal(length(Factors),3),if isequal(length(Factors),4),if isequal(length(Factors),5)
 )
clear all;
clc;
FactorGrid = [];
%Three differend Factors, each Factor has 4 different possible values(each Factor has to have the same amount of different possible values )
Factors{1}= [1,2,3,4];
Factors{2}= [55,66,77,88];
Factors{3}= [101,202,303,404];
%For using 2 Factors
if isequal(length(Factors),2)
    for k = 1:length(Factors{1})
        for l = 1:length(Factors{2})
             FactorGrid{end+1,1} = [Factors{1}(k),Factors{2}(l)];
        end
    end
end
%For using 3 Factors
if isequal(length(Factors),3)
    for k = 1:length(Factors{1})
        for l = 1:length(Factors{2})
            for m = 1:length(Factors{3})
                FactorGrid{end+1,1}  = [Factors{1}(k),Factors{2}(l),Factors{3}(m)];
            end
        end
    end
end
I tried to work with 
perms()
but that didn't work either.
The grid should have the size of possible values^number of Factors, so in this case 4^3. 
Can you help me out?
0 Comments
Accepted Answer
More Answers (2)
  Walter Roberson
      
      
 on 30 May 2021
        [FG{:}] = ndgrid(Factors{:});
2 Comments
  Walter Roberson
      
      
 on 30 May 2021
				True. Or you can
[cellsForNgrid{1:numel(Factors)}] = ndgrid(Factors{:});
See Also
Categories
				Find more on Discrete Math 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!


