How to rearrange random binary input for each iteration?
Show older comments
I am having 7 randomnly generated binary input. With this input I have performed some set of mathematical calculations. Now i need to repeat the mathematical calculations with changed order of binary input and this has to be followed for each iteration until a certain condition is met.
Example:
A = [011; 101; 010; 001; 100; 110; 111]
Expected output: Input order of A has to be varied for each iteration.
Answers (1)
Bjorn Gustavsson
on 9 Jan 2023
0 votes
Have a look at the nextperm tool on the file exchange. It will allow you to cycle through all permutations.
HTH
9 Comments
ASHA PON
on 10 Jan 2023
This does not give a binary vector
A = [011; 101; 010; 001; 100; 110; 111]
Those are decimal, base 10 numbers, not base 2 numbers.
Please attach your actual code.
ASHA PON
on 10 Jan 2023
Edited: Walter Roberson
on 10 Jan 2023
Walter Roberson
on 10 Jan 2023
Edited: Walter Roberson
on 10 Jan 2023
A = randperm(7)
for col = (dec2bin(A) - '0').'
row = col.'
result = row(1)*11 + row(2).^2 - row(3) %some calculation
end
ASHA PON
on 10 Jan 2023
Walter Roberson
on 10 Jan 2023
The number does vary for each iteration. Each row = output line shows the input that was received, and you can see that no two of the inputs were the same.
ASHA PON
on 10 Jan 2023
Just write the expression using indexing.
If you have a linear expression, you could use multiplication such as [3 -1 5 11 4 2 -5 ...] * col
A = randi([0 2^12-1], 1, 5)
for col = (dec2bin(A) - '0').'
row = col.'
result = row(1)*11 + row(2).^2 - row(3) + 7*row(4).^2 - row(5).^9 + row(6)*2 - row(7)*5 + row(8).^3 - row(9)*15 + row(10)*3 + row(11)*8 - row(9)*4 %some calculation
end
ASHA PON
on 10 Jan 2023
Categories
Find more on Creating and Concatenating Matrices 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!