# How to create many matrixes in one structure?

1 view (last 30 days)
Bartosz Bagrowski on 16 May 2022
Answered: Image Analyst on 16 May 2022
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.

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);
end
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)))

R2021a

### Community Treasure Hunt

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

Start Hunting!