How can I make each iteration of a for each block create a unique random number?

I want to create a random number for all iterations of my For Each Block at each time step. I've tried by simply adding a random number in my For Each Subsystem but I get the same random number outputted for each iteration. See a test model of this below.
How can I achieve generating unique random numbers for each iteration?
One method I know exists would be to have it outside the for each loop but that is undesirable because:
  1. My model is several subsystems beneath the top level of the for each loop so it would be undesirable.
  2. I would like to create this into a library block so I don't want it to be dependent on signals at the top level.

 Accepted Answer

You will have to generate a vector of random numbers outside and pass it as an input. Default partitioning of this vector might not happen the way you need it.
Cheers.

2 Comments

That was a solution I was hoping to avoid. I wanted to do it internal to the for each block though.
Not sure if that is possible. The rng blocks spit a number (or a vector of numbers) in sequence for each time step. The iterations inside the foreach block are not individual time steps -just the same time step iterating over each element in the vector signal.

Sign in to comment.

More Answers (0)

Products

Release

R2019b

Asked:

on 28 Nov 2022

Commented:

cr
on 28 Nov 2022

Community Treasure Hunt

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

Start Hunting!