Permute my center blocks

1 回表示 (過去 30 日間)
Yuxing Zhang
Yuxing Zhang 2018 年 11 月 6 日
コメント済み: Bruno Luong 2018 年 11 月 6 日
I have a matrix A with center piece (80×80) and I have now divided into 16 blocks of size 20×20. I also have a permutation vector V=[7 11 2 3 ....], which I need to place the 7th block in the location of the first block, place the 11th block in the location of the second block, etc.
Now the issue is I don't know how make make my blocks into numbered blocks and change order, can any one give me some example codes?
below this my code:
A=rand(200,200);
Acenter=A(161:240,161:240);
Ablock= mat2cell(Acenter,[20 20 20 20 ],[20 20 20 20]);
  1 件のコメント
Bruno Luong
Bruno Luong 2018 年 11 月 6 日
Acenter=A(161:240,161:240)
What is that for, beside just throw out an error because the indexing is wrong?
What is the relation of block permutation?

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

採用された回答

per isakson
per isakson 2018 年 11 月 6 日
編集済み: per isakson 2018 年 11 月 6 日
"how make make my blocks into numbered blocks" Matlab does that automatically, e.g.
>> Ablock(11)
ans =
1×1 cell array
{20×20 double}
See Array Indexing, and notice "linear indexing"
Check whether this does the trick
A=rand(200,200);
Acenter=A(61:140,61:140);
Ablock= mat2cell(Acenter,[20 20 20 20 ],[20 20 20 20]);
V = randperm(16); % random permutation vector
Bblock = reshape( Ablock(V), size(Ablock) );

その他の回答 (0 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by