How to create many matrixes in one structure?

1 view (last 30 days)
Hi guys,
I faced such a problem. I have two functions:
1) function sol = CreateRandModel(model)
2) function qnew = CreateNeighbor(q,model)
In the first function, as an output I get an array (fburn_rand) 1x25 with values. In the second function, I would like create a structure Q (?) which will contain for example 100 of such an arrays, I just don't want the values to be mixed inside so it would look like this: Q=[fburn_rand1 fburn_rand2 ... fburn_rand100] and in the same function I would like to switch later two randomly picked whole arrays inside Q, for example Q=[fburn_rand4 fburn_rand2 fburn_rand3 fburn_rand1 ... fburn_rand100] if 1 and 4 elements would be randomly picked. Is the structure a good idea? Maybe it can be done differently?
I would be thankful for every answer.

Answers (1)

Image Analyst
Image Analyst on 16 May 2022
You need an array of structures, or "structure array":
for k = 1 : 100
Q(k).fburn_rand = CreateRandModel(model);
To pick two random structures and swap them, I think this will work
randomIndexes = randperm(length(Q), 2);
[Q(randomIndexes(2)), Q(randomIndexes(1))] = deal(Q(randomIndexes(1)), Q(randomIndexes(2)))


Find more on Structures 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!

Translated by