以下函数允许您确定变量或表达式的大小。这些函数是为所有对象定义的。当操作没有意义时,它们返回−1。例如,Octave 的数据结构类型没有行或列,因此 rows 和 columns 函数对结构体参数返回−1。
n = ndims (A) ¶返回 A 的维度数。
对于任何数组,结果总是大于或等于 2。不计算尾随的单例维度,即,对于 size (A, d) = 1 且 d 大于 2 的尾随维度 d。
ndims (ones (4, 1, 2, 1))
⇒ 3
另请参阅: size。
nc = columns (A) ¶nc = width (A) ¶返回 A 的列数。
这相当于 size (A, 2)。
编程注意:width 是 columns 的别名,可以互换使用。
另请参阅: rows, size, length, numel, isscalar, isvector, ismatrix。
nr = rows (A) ¶nr = height (A) ¶返回 A 的行数。
这相当于 size (A, 1)。
编程注意:height 是 rows 的别名,可以互换使用。
另请参阅: columns, size, length, numel, isscalar, isvector, ismatrix。
n = numel (A) ¶n = numel (A, idx1, idx2, …) ¶返回对象 A 中的元素数量。
可选地,如果提供了索引 idx1、idx2、…,则返回通过索引操作将得到的元素数量
A(idx1, idx2, ...)
请注意,索引不必是标量数字。例如,
a = 1; b = ones (2, 3); numel (a, b)
将返回 6,因为这是使用 b 进行索引的方式。或者,索引可以是代表冒号运算符的字符串 ":"。例如,
A = ones (5, 3); numel (A, 2, ":")
将返回 3,因为第二行有 3 个列元素。
当对象用作具有 cs-list 索引的左值时,也会调用此方法,即 object{...} 或 object(...).field。
n = length (A) ¶返回对象 A 的长度。
空对象的长度为 0,标量的长度为 1,向量的长度为元素数量。对于矩阵或 N 维对象,长度是沿最大维度的元素数量(相当于 max (size (A)))。
sz = size (A) ¶dim_sz = size (A, dim) ¶dim_sz = size (A, d1, d2, …) ¶[rows, cols, …, dim_N_sz] = size (…) ¶返回一个行向量,其中包含对象 A 每个维度的大小(元素数量)。
当给出第二个参数 dim 时,返回对应维度的大小。如果 dim 是一个向量,则返回每个对应的维度。也可以将多个维度指定为单独的参数。
使用单个输出参数时,size 返回一个行向量。当使用多个输出参数调用时,size 在第 N 个参数中返回第 N 个维度的大小。第一个参数返回行数(维度 1),第二个参数返回列数(维度 2),依此类推。如果 A 中的维度数比输出参数的数量多,则 size 在最终输出参数中返回剩余维度中的元素总数。如果请求的维度 dim 大于 A 中的维度数,则 size 返回 1(而不是 0)。
示例 1:单行向量输出
size ([1, 2; 3, 4; 5, 6]) ⇒ [ 3, 2 ]
示例 2:第二个维度中的元素数量(列)
size ([1, 2; 3, 4; 5, 6], 2)
⇒ 2
示例 3:输出参数的数量 == 维度数量
[nr, nc] = size ([1, 2; 3, 4; 5, 6])
⇒ nr = 3
⇒ nc = 2
示例 4:输出参数的数量 < 维度数量
[nr, remainder] = size (ones (2, 3, 4, 5))
⇒ nr = 2
⇒ remainder = 60
示例 5:维度中的元素数量 > 实际维度数量
sz4 = size (ones (2, 3), 4)
⇒ sz4 = 1
另请参阅: numel, ndims, length, rows, columns, size_equal, common_size。
tf = isnull (x) ¶如果 x 是特殊的 null 数组、字符串或单引号字符串,则返回 true。
右侧带有此类 null 值的索引赋值应删除对应的数组元素。此函数用于在重载用户定义类的索引赋值方法(subsasgn)时替代 isempty。isnull 用于区分以下两种情况:
A(I) = []
和
X = []; A(I) = X
在第一个赋值中,右侧是 [],这是一个特殊的 null 值。只要索引 I 不为空,此代码应从 A 中删除元素,而不是执行赋值。
在第二个赋值中,右侧是空的(因为 X 是 []),但它不是 null。此代码应将空值赋值给 A 中的元素。
Octave 内置字符类中的一个示例演示了当正确使用 isnull 时解释器的行为。
str = "Hello World"; nm = "Wally"; str(7:end) = nm # indexed assignment ⇒ str = Hello Wally str(7:end) = "" # indexed deletion ⇒ str = Hello
TF = size_equal (A, B) ¶TF = size_equal (A, B, …) ¶如果所有参数的维度一致,则返回 true。
尾随的单例维度将被忽略。当使用单个参数或无参数调用时,size_equal 返回 true。
另请参阅: size, numel, ndims, common_size。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2