首页 > 解决方案 > 为什么Matlab中数组的维数总是大于等于2?

问题描述

ndims 的文档指出

N = ndims(A) 返回数组 A 的维数。维数总是大于等于 2

单维数组,即行向量不是表示维数为1吗?

标签: matlaboctave

解决方案


如果你往里看ndims.m,你会看到

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

现在size总是返回一个长度 >=2 的向量,即使是空数组(即size([])is [0 0])。为什么会这样?很可能是 TMW 很久以前做出的设计选择。

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

function nad = nActDims(in)

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

isscalar或函数, isvector,的某种组合ismatrix


推荐阅读