2015-12-03 84 views
0

我有一個由矩陣表示的圖像。假設它是21x23矩陣。Matlab將圖像分割爲10x10個單元格

如何將矩陣分成10行和10列。不過,它們的尺寸不一定相同。

有一個功能mat2cell,但我不知道如何使用它

+1

什麼是每個單元格的大小實際需求?你需要10行×10列,但不一定......我不明白你需要什麼。請提供更多細節。 –

回答

4

讓我們您的數據存儲在inputmat。

首先,你必須計算子矩陣的維數。例如,他們可能是:

rows = diff(floor(linspace(0,21,11))) 
cols = diff(floor(linspace(0,23,11))) 

,然後你執行:

cellmatrix = mat2cell(inputmat,rows, cols); 
+1

如果要在每個維度中指定的單元格數量沒有均勻分配,則這不起作用。 MATLAB會在這種情況下給你一個錯誤。對於OP的情況,他們想要從21×23圖像創建**不均勻**尺寸的10×10個單元。你需要做其他事情,或者修改你調用'mat2cell'的方式來解決尺寸不均勻的單元。 – rayryeng

+2

我想要的是'rows = diff(floor(linspace(0,21,11)))' –

+0

@ Ben Voigt:這是計算行數的正確方法。我會根據您的評論更新我的解決方案。 –