3.3对象大小

以下函数允许您确定变量或表达式的大小。这些函数是为所有对象定义的。当操作没有意义时,它们返回−1。例如,Octave的数据结构类型没有行或列,因此对于结构体参数,函数返回−1。

 
: n = ndims (A)

返回的维度数A.

对于任何数组,结果总是大于或等于2。后面的单例维度不计算在内,即后面的维度d大于2,其中大小A, d1..

ndims(一个(4,1,2,1))⇒ 3.

详见: 大小.

 
: nc = columns (A)

返回的列数A.

这相当于大小A2..

详见: , 大小, , 呆火驼, isscalar, isvector, ismatrix.

 
: nr = rows (A)

返回的行数A.

这相当于大小A1..

详见: , 大小, , 呆火驼, isscalar, isvector, ismatrix.

 
: n = numel (A)
: n = numel (A, idx1, idx2, …)

返回对象中的元素数A.

可选地,如果索引idx1, idx2,…,返回索引将返回的元素数

A(idx1, idx2, ...)

请注意,索引不必是标量。例如

a1.b=个(2,3);numel(a, b)

将返回6,因为这是索引的方式数b。或者索引可以是字符串:它表示冒号运算符。例如

A=个(5,3);numel(A2.

将返回3,因为第二行有三个列条目。

当对象显示为具有cs-listindexing的左值时,也调用此方法,即。,对象对象(…).field.

详见: 大小, , 数组的维数.

 
: n = length (A)

返回对象的长度A.

空对象的长度为0,标量的长度为1,向量的元素数为1。对于矩阵或N维对象,长度是沿最大维度的元素数(相当于最大(大小(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个参数的维度Nin的大小。第一个参数返回行数(维度1),第二个参数返回列数(维度2),依此类推。如果中有更多维度A比有多余的参数,size返回最终输出参数中剩余维度中的元素总数。如果指定的尺寸dim大于中的维度数A, size返回1(不是0)。

示例1:单行向量输出

尺寸([1,2;3,4;5,6])⇒ [ 3, 2 ]

示例2:第二个维度中的元素数(列)

尺寸([1,2;3,4;5,6],2)⇒ 2.

示例3:输出参数的数量==维度的数量

[nr,nc]=大小([1,2;3,4;5,6])⇒ nr=3⇒ nc=2

示例4:输出参数的数量<维度的数量

[nr,余数]=大小(个(2、3、4、5))⇒ nr=2⇒ 余数=60

示例5:维度中元素的数量>实际维度的数量

sz4=大小(个(2,3),4)⇒ sz4=1

详见: 呆火驼, 数组的维数, , , , 大小_相等, common_size.

 
: tf = isempty (A)

如果返回trueA是一个空对象(其任意一个维度为零)。

详见: 不是, isa.

 
: tf = isnull (x)

如果返回truex是一个特殊的null数组、字符串或单引号字符串。

右侧有这样一个null值的索引赋值应该删除tearray元素。此函数用于代替isempty重载索引赋值方法时(subs)用于用户定义的类。不是用于区分这两种情况:

A() = []

十、= []; A() = 十、

在第一个赋值中,右侧为[]这是一个specialnull值。只要索引不是空的,此代码应该从中删除元素A而不是执行赋值。

在第二个赋值中,右侧为空(因为十、[]),但确实如此无效的此代码应将空值赋值给中的元素A.

Octave内置char类中的一个示例演示了当不是正确使用。

str=“你好世界”;nm=“Wally”;str(7:end)=nm#索引赋值⇒ str=Hello Wallystr(7:end)=“”#索引删除⇒ str=你好

详见: isempty, isindex.

 
: sz = sizeof (val)

返回的大小val以字节为单位。

详见: .

 
: TF = size_equal (A, B)
: TF = size_equal (A, B, …)

如果所有参数的维度一致,则返回true。

后面的单例维度将被忽略。当使用单个参数或无参数调用时,大小_相等返回true。

详见: 大小, 呆火驼, 数组的维数, common_size.

 
: B = squeeze (A)

从中删除单例维度A并返回结果。

请注意,为了与兼容MATLAB,所有对象都至少有两个维度,行向量保持不变。

详见: 重塑.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号