2013-12-13 16 views
1

我很困惑Matlab如何返回一個數組的大小。看看這個:在Matlab中返回一個數組的大小

a = zeros(2,100,10); 
b = a(1,:,:); 
size(b) 

ans = 
    1 100 10 

我相信答案應該是

 100 10 

有沒有一種簡單的方法來解決這個問題?

回答

4

Matlab只刪除拖尾單身尺寸,否則(1,:,:)將是2D和(1:2,:,:) 3D,這可能會令人困惑。

嘗試squeeze,它刪除所有單身人士維度。

a = zeros(2,100,10); 
b = squeeze(a(1,:,:)); 
size(b) 

ans = 

    100 10 
+3

實際上,它確實除去_trailing_單尺寸:'尺寸(一個(:,:,1))''是2 100'(未'2 100 1') –

+0

感謝。這很好。 – Roman

+0

@LuisMendo:你是對的,從來沒有注意到這一點,因爲生成的2d矩陣也可以使用'a(3,4,1)'進行索引。 – Daniel

相關問題