Placing Blocks of fixed size to random positions in a bigger matrix

1 回表示 (過去 30 日間)
Bharathwaj
Bharathwaj 2011 年 11 月 16 日
How do you place a smaller matrix(block) of fixed size in a bigger matrix at random positions?
  1 件のコメント
Bharathwaj
Bharathwaj 2011 年 11 月 25 日
what if the placement of the smaller blocks should not overlap with the existing blocks ?

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 11 月 16 日
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

その他の回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2011 年 11 月 16 日
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
  1 件のコメント
Bharathwaj
Bharathwaj 2011 年 11 月 25 日
what if the placement of the smaller blocks should not overlap with the existing blocks ?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSources についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by