为什么在Matlab中数组的维数总是大于或等于2?

时间:2018-12-09 15:51:41

标签: matlab octave

ndims的文档指出

  

N = ndims(A)返回数组A中的维数。维数始终大于或等于2

不是一维数组,即行向量的维数是1吗?

1 个答案:

答案 0 :(得分:0)

如果您查看ndims.m的内部,可以看到

Put simply, it is LENGTH(SIZE(X)).

现在size总是返回一个长度> = 2的向量,即使对于空数组(即size([])[0 0])也是如此。为什么呢? TMW很久以前就做出了设计选择。

如果要测量“实际尺寸”,则可能要使用:

function nad = nActDims(in)

if numel(in) == 1
  nad = 1;
else
  nad = sum(size(in)>1);
end

或功能isscalarisvectorismatrix的某种组合。