以下函数允许您确定变量或表达式的大小。这些函数是为所有对象定义的。当操作没有意义时,它们返回−1。例如,Octave的结构体类型没有行或列,因此rows和columns对于结构体参数,函数返回−1。
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,因为第2行有3个列分量。
当对象显示为具有cs-list下标引用的左值时,也调用此方法,即,object{…}或object(…).field.
n = length (A) ¶返回对象A的长度.
空对象的长度为0,标量的长度为1,向量的元素数为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个维度的大小。第一个参数返回行数(维度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) ¶如果返回true,则x是一个特殊的null数组、字符串或单引号字符串。
右侧有null值的索引赋值将删除矩阵中的对应元素。此函数用于代替isempty重载索引赋值方法(subsasgn),可用于用户定义的类。isnull用于区分这两种情况:
A(I) = []
和
X = []; A(I) = X
在第一个赋值中,右侧为[]。这是一个特殊的空值。只要索引I不为空,此代码应该从A中删除元素而不是执行赋值。
在第二个赋值中,右侧为空(因为X是[]),但此代码确实不无效,而是将空值赋值给A中的元素.
Octave内置char类中的一个示例演示了isnull正确使用的行为。
str = "Hello World"; nm = "Wally"; str(7:end) = nm # indexed assignment ⇒ str = Hello Wally str(7:end) = "" # indexed deletion ⇒ str = Hello
sz = sizeof (val) ¶返回val的大小,以字节为单位。
详见: whos.
TF = size_equal (A, B) ¶TF = size_equal (A, B, …) ¶如果所有参数的维度一致,则返回true。
后面的奇异维度将被忽略。当使用单个参数或无参数调用时,size_equal返回true。
详见: size, numel, ndims, common_size.
B = squeeze (A) ¶从A中删除奇异维度并返回结果。
请注意,为了与兼容MATLAB,所有对象都至少有两个维度,行向量保持不变。
详见: reshape.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2