Create a multidimensional Grid
Afficher commentaires plus anciens
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?
Réponse acceptée
Plus de réponses (2)
Walter Roberson
le 30 Mai 2021
[FG{:}] = ndgrid(Factors{:});
2 commentaires
Fab
le 30 Mai 2021
Walter Roberson
le 30 Mai 2021
True. Or you can
[cellsForNgrid{1:numel(Factors)}] = ndgrid(Factors{:});
Fab
le 30 Mai 2021
0 votes
1 commentaire
Torsten
le 30 Mai 2021
Modifié(e) : Walter Roberson
le 30 Mai 2021
Catégories
En savoir plus sur Discrete Math dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
