matlab - 为什么Matlab中数组的维数总是大于等于2?
问题描述
ndims 的文档指出
N = ndims(A) 返回数组 A 的维数。维数总是大于等于 2
单维数组,即行向量不是表示维数为1吗?
解决方案
如果你往里看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
。
推荐阅读
- c - 澄清 C 中内联函数的内部链接
- amazon-web-services - 带有音频输入流的 Amazon Transcribe
- unity3d - vuforia unity 场景加载空白
- javascript - 选择列表过滤json数据
- ios - css Flip 在 iphone 8 safari 上不起作用
- html - 浏览器引擎如何工作?
- crystal-reports - 我可以将 Telerik 报告中的报告转换为任何其他报告服务吗
- php - 未捕获的 ArgumentCountError:函数 quote_smart() 的参数太少,已通过 1 个
- c# - 在 WPF 中单击时更改圆形按钮的颜色
- react-native - React Native - Ref seems to be undefined