如何将数字填充到Matrix的边界?

时间:2016-04-18 14:08:23

标签: matlab

如果我有一个名为' mat':

的矩阵
mat=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16];

enter image description here

如何将数字填充到mat

的边框 例如,

如果矩阵的大小是n = 5: 输出应该是:

enter image description here

如果矩阵的大小是n = 6: 输出应该是:

enter image description here

Mathematica 中,我可以使用此代码:

ArrayPad[mat, {0, 2}, "Fixed"]

如何在 Matlab 中实现它?

2 个答案:

答案 0 :(得分:0)

Partida,当x = 1且Y = 128

时会出现问题

你只需要重新思考你想要完​​成的事情。由于尺寸问题,这个循环不能按照它的方式工作。

为Y = 128制定条件。 如果y = 128,那么你不要为索引加“+”。

load lis
sumLumi=HLmap1;
for x=1:size(HLmap1,1)
   for y=1:size(HLmap1,2)
           if (y~=size(HLmap1,2)
sumLumi(x,y)=HLmap3(floor(x/4)+1,floor(y/4)+1)+HLmap3(floor(x/4)+2,floor(y/4)+1)+HLmap3(floor(x/4)+1,floor(y/4)+2)+HLmap3(floor(x/4)+2,floor(y/4)+2);
else
sumLumi(x,y)=HLmap3(floor(x/4),floor(y/4))+HLmap3(floor(x/4),floor(y/4))+HLmap3(floor(x/4),floor(y/4))+HLmap3(floor(x/4)+2,floor(y/4));
       end
    end
    sumLumi

答案 1 :(得分:0)

 n=6;
 padarray(mat,[n-4,n-4],'replicate','post')

enter image description here

在这种情况下,上面的代码等于 Mathematica 代码:

ArrayPad[mat, {0, n-4}, "Fixed"]

他们的名字也很相似。