How can I convert the 8*8 matrix a to 4*4 matrix b using downsample

23 ビュー (過去 30 日間)
Batool Engineer
Batool Engineer 2016 年 3 月 4 日
コメント済み: Batool Engineer 2016 年 3 月 4 日
downsample for raw and column and save the result in one matrix like b
for example:
a=
[1 2 8 5 4 7 5 9;
4 8 3 6 7 1 2 11;
7 8 2 1 7 7 7 9;
11 5 7 0 9 7 6 5;
7 8 9 6 0 0 8 7;
9 6 7 2 6 3 2 1;
1 1 2 4 5 8 9 6;
0 7 8 9 6 3 5 4]
b=
1 8 4 5
7 2 7 7
7 9 0 8
1 2 5 9

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 3 月 4 日
A(1:2:end,1:2:end)
  3 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 3 月 4 日
編集済み: Azzi Abdelmalek 2016 年 3 月 4 日
a=[1 2 8 5 4 7 5 9;
4 8 3 6 7 1 2 11;
7 8 2 1 7 7 7 9;
11 5 7 0 9 7 6 5;
7 8 9 6 0 0 8 7;
9 6 7 2 6 3 2 1;
1 1 2 4 5 8 9 6;
0 7 8 9 6 3 5 4]
[n,m]=size(a);
a1=reshape(downsample(a,2),[],m)
out=reshape(downsample(a1',2),[],size(a1,1))'
Batool Engineer
Batool Engineer 2016 年 3 月 4 日
thank you so much.

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

その他の回答 (1 件)

Guillaume
Guillaume 2016 年 3 月 4 日
編集済み: Guillaume 2016 年 3 月 4 日
The two answers you've got are downsampling, using nearest neighbour interpolation.
More advanced ways of downsampling your matrix would be to use imresize, e.g.
imresize(a, 0.5, 'nearest') %nearest neighbour interpolation
imresize(a, 0.5, 'bilinear') %bilinear interpolation
imresize(a, 0.5, 'bicubic') %etc.
  1 件のコメント
Batool Engineer
Batool Engineer 2016 年 3 月 4 日
I want to write ' downsample ' instruction, e.g. b=downsample(a,2)
but in command window appear b =
1 2 8 5 4 7 5 9
7 8 2 1 7 7 7 9
7 8 9 6 0 0 8 7
1 1 2 4 5 8 9 6
but I want for columns also.

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

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by