例如,如果我们写:
x = int8.empty(0,5)
whos x
输出:
% Name Size Bytes Class Attributes
% x 0x5 0 int8
这样,我们就得到了一个0x5
类的空数组int8
.
如果内存大小为 0 字节,则预分配包含非空维度的空数组的目的是什么?
在这种情况下
x = int8.empty(0,5)
比更有用
x = int8.empty(0,0)
Does int8.empty(0,5)
仍然预分配 5 个“插槽”内存吗?
我遇到过 0×n 向量的实际用例:使用 Matlab 新的声明性属性和参数约束,您可以说“x 必须是 N×1”或“z 必须是 n-” by-3”,将其声明为 (:,1) 或 (:,3)。这允许您以一致的方式表示空集。
这样做还有正式的原因:函数或操作可以根据其输入的维度来定义,例如“采用 m×n 数组并返回 k×n 数组,其中 k = somefunction( m 或其值)”,并且在 k 为零的退化情况下,具有某些非零维度的空数组允许这样的操作,但仍严格遵守其契约。
实际上,对于连接等基本操作,所有空数组通常都是可互换的,并且通常会正常工作或最多会产生警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)