Placing Blocks of fixed size to random positions in a bigger matrix
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How do you place a smaller matrix(block) of fixed size in a bigger matrix at random positions?
Réponse acceptée
Andrei Bobrov
le 16 Nov 2011
M = zeros(5)
m = randi(4,3)
sM = size(M);
sm = size(m);
k=sM-sm+1;
iM = reshape(1:numel(M),sM(1),[]);
iw = iM(1:k(1),1:k(2));
im = bsxfun(@plus,(0:sm(1)-1).',0:sM(1):sM(1)*(sm(2)-1));
M(iw(randi(numel(m)))+im) = m
0 commentaires
Plus de réponses (1)
Fangjun Jiang
le 16 Nov 2011
a=rand(3);
A=magic(10);
[m,n]=size(a);
[M,N]=size(A);
i=floor((M-m)*rand)+1;
j=floor((N-n)*rand)+1;
A(i+1:i+m,j+1:j+n)=a
Voir également
Catégories
En savoir plus sur Sources dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!