How to create many matrixes in one structure?

2 Ansichten (letzte 30 Tage)
Bartosz Bagrowski
Bartosz Bagrowski am 16 Mai 2022
Beantwortet: Image Analyst am 16 Mai 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.

Antworten (1)

Image Analyst
Image Analyst am 16 Mai 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)))

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by