在Matlab中返回数组的大小

Rom*_*man 2 matlab

我很困惑Matlab如何返回数组的大小.看这个:

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

ans =
    1   100    10
Run Code Online (Sandbox Code Playgroud)

我相信答案应该是

        100    10
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法来解决这个问题吗?

Dan*_*iel 5

Matlab只删除拖尾单例尺寸,否则(1,:,:)将是2D和(1:2,:,:) 3D,这可能会非常混乱.

尝试挤压,它会删除所有单例尺寸.

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

ans =

   100    10
Run Code Online (Sandbox Code Playgroud)

  • 实际上,它确实删除了_trailing_ singleton维度:`size(a(:,:,1))`是`2 100`(不是`2 100 1`) (3认同)