Evaluating all possible combinations

3 vues (au cours des 30 derniers jours)
Michael Jacobson
Michael Jacobson le 6 Mar 2023
I am working on designing a composite part. The two main variables are the number of layers i can stack and the orientation of each layer (0,45,90 deg.). In the below image, we can see different layers stacked with different orientations
I am trying to find all possible sequences that can be made, but im not sure how to go about that. For example, if i have 5 layers, how would i determine all the possible sequences?
I've tried perms and nchoosek - don't seem to work, but im not sure why.
Thanks
  2 commentaires
Torsten
Torsten le 6 Mar 2023
So for each layer you have 4 possible orientations. Thus if you have N layers, the number of possible arrangements is 4^N. Is this a correct interpretation of what you try to achieve ?
Michael Jacobson
Michael Jacobson le 6 Mar 2023
Yes, i believe that's the proper understanding.

Connectez-vous pour commenter.

Réponse acceptée

Karim
Karim le 6 Mar 2023
Modifié(e) : Karim le 6 Mar 2023
See below for one method to obtain all combinations.
In the resulting matrix, each row represents a combination, the first column holds the angle for the first layers, the second for the second etc.
Hope it helps ;)
% define the angle options for a layer
LayerOptions = [0 -45 45 90];
% define number of layers
NumLayer = 5;
% create place holder for the layers
CellCombo = cell(1,NumLayer);
% assign the options for each layer
CellCombo(:) = {LayerOptions};
% extend the data to obtain the combinations
Combinations = CellCombo;
[Combinations{:}] = ndgrid(CellCombo{:});
Combinations = cell2mat(cellfun(@(m)m(:),Combinations,'uni',0));
% print the result
Combinations
Combinations = 1024×5
0 0 0 0 0 -45 0 0 0 0 45 0 0 0 0 90 0 0 0 0 0 -45 0 0 0 -45 -45 0 0 0 45 -45 0 0 0 90 -45 0 0 0 0 45 0 0 0 -45 45 0 0 0
  1 commentaire
Michael Jacobson
Michael Jacobson le 19 Mar 2023
This helps a lot, thanks! It does exactly what I was looking for.
I do appreciate your help!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by