2015-06-23 227 views
2

我有一個大小爲[86 86]的矩陣[x y]。我想把這個矩陣分成10個子矩陣。對於最後一個矩陣,將存在座標不足,但可以用零填充。將矩陣分成10個子矩陣

[x y] = size(I) 
nSub = 10; 
B = mat2cell(I, 2*ones(size(I,1)/2,1), 2*ones(size(I,2)/2,1)) 

我嘗試過使用mat2cell函數,但輸出不太好。 任何人都可以告訴我哪裏會出錯或我可以更改此功能

+0

墊用零矩陣並應用[此](http://stackoverflow.com/a/20337173/2586922)。讓我知道它是否有效,因此我可以將其標記爲重複 –

+0

10個矩陣或10by10子矩陣? – thewaywewalk

回答

2

這是否適合您?

I = rand(86,86); 
[x y] = size(I) 
nSub = 10; 

%// padding 
xp = x + nSub - mod(x,nSub); 
yp = y + nSub - mod(y,nSub); 
I(xp,yp) = 0; 

%// submatrices 
B = mat2cell(I, nSub*ones(xp/nSub,1),nSub*ones(yp/nSub,1)) 

enter image description here