2017-05-04 64 views
2

我有一個尺寸爲128x128的25000張圖像陣列。我希望它的尺寸​​是25000x128x128而不是128x128x25000。在Matlab重塑它:將NxNxM陣列重塑爲MxNxN

data_reshaped = reshape(data, 25000, 128, 128) 

其中data具有尺寸128x128x25000。但是,當我嘗試使用imshow(squeeze(data_reshaped(1,:,:)))data_reshaped中的某個圖像進行可視化時,我得到一個損壞的圖像。

enter image description here

+2

,我承擔。 –

+1

@AnderBiguri或'shiftdim' – beaker

+0

謝謝!兩種解決方案都可以工 – Alejandro

回答

3

你誤以爲你想要做的「改變形狀」與函數名稱,reshape的東西。你想要的是改變尺寸的順序,保持形狀。

data_reshaped = permute(data,[3 2 1]); 

大概是你所尋求的解決方案,否則儘量

data_reshaped = permute(data,[3 1 2]); 
要`permute`它,而不是重塑它