Create a multidimensional Grid
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Fab
el 30 de Mayo de 2021
Editada: Walter Roberson
el 30 de Mayo de 2021
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 comentarios
Respuesta aceptada
Más respuestas (2)
Walter Roberson
el 30 de Mayo de 2021
[FG{:}] = ndgrid(Factors{:});
2 comentarios
Walter Roberson
el 30 de Mayo de 2021
True. Or you can
[cellsForNgrid{1:numel(Factors)}] = ndgrid(Factors{:});
Fab
el 30 de Mayo de 2021
1 comentario
Torsten
el 30 de Mayo de 2021
Editada: Walter Roberson
el 30 de Mayo de 2021
Ver también
Categorías
Más información sobre Discrete Math en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!