could anyone help me how to generate two different random numbers of same value.
Afficher commentaires plus anciens
I am having two matrices A and B generated randomly with different values
A=rand(4,3)
B=rand(4,3)
Now I want to know is there any other way such that the some of the values generated in A can be made equal to the values generated in B.
2 commentaires
Yongjian Feng
le 5 Juil 2021
Not very sure what you need here. Since rand is random, it is possible already some of the values in A can be repeated in B.
- Do you want the sum of A is the same as the sum of B?
- Do you want exactly 3 (for examples) values in A to be already repeated in B?
jaah navi
le 5 Juil 2021
Réponse acceptée
Plus de réponses (2)
Amit Bhowmick
le 5 Juil 2021
Modifié(e) : Amit Bhowmick
le 5 Juil 2021
Check the values you will alyas get zero that is they are not equal. More preciesly probability of getting same value is very less. Basically the algorithm of generating random number is such you can learn here
https://en.wikipedia.org/wiki/Random_number_generation
rand(4,3)==rand(4,3) or isequal(rand(4,3),rand(4,3))
A = sort(rand(300,300));
imagesc(A)
title('original')
p = 45700/48000;
mask = rand(size(A)) <= p;
B = [A(mask); rand(numel(A)-nnz(mask),1)];
B = reshape(B(randperm(numel(B))), size(A));
imagesc(B)
title('rerandom')
mean(ismember(B(:), A)) * 100
p * 100
So in this case, the target fraction to keep was 95.2083% and the actual fraction kept was 95.2233%
If it was necessary to have exactly the ratio 45700/48000 stay the same then that could be done... though it becomes trickier if you are working with integers.
3 commentaires
jaah navi
le 5 Juil 2021
Walter Roberson
le 6 Juil 2021
A = arrayfun( @my_rand, repelem((1:10).',30), 'UniformOutput', false);
B = arrayfun( @my_rand, repelem((1:10).',30), 'UniformOutput', false);
p = 0.9;
nkeep = ceil(p * numel(A)) ;
keepidx = randperm(numel(A), nkeep);
B(keepidx) = A(keepidx);
jaah navi
le 6 Juil 2021
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

