如何在矩阵周围添加镜像填充?

问题描述 投票:2回答:1

我有一个矩阵,想在其周围添加填充,但是填充后的值必须镜像。

我尝试使用A = padarray(B,[1 1],'symmetric','both');

但它镜像矩阵B的边缘值。

表示是否

  B = [1 2 3; 
       4 5 6; 
       7 8 9]; 

结果将是

  A = [1 1 2 3 3; 
       1 1 2 3 3; 
       4 4 5 6 6; 
       7 7 8 9 9; 
       7 7 8 9 9]

但是我需要A看起来像这样:

 A = [5 4 5 6 5; 
      2 1 2 3 2; 
      5 4 5 6 5; 
      8 7 8 9 8;
      5 4 5 6 5]

是否有某些功能可以使用,例如padarray还是必须手动执行?

matlab matrix padding mirror
1个回答
3
投票

您可以将symmetric[2 2]一起使用,并删除多余的部分,

B = [1 2 3; 4 5 6; 7 8 9];
c = padarray(B,[2 2],'both','symmetric');
c(end-1,:) = [];
c(:,end-1) = [];
c(:,2) = [];
c(2,:) = [];

给予,

c =

 5     4     5     6     5
 2     1     2     3     2
 5     4     5     6     5
 8     7     8     9     8
 5     4     5     6     5
© www.soinside.com 2019 - 2024. All rights reserved.