tf =
all (x)
¶tf =
all (x, dim)
¶对于向量参数,如果向量的所有元素都非零,则返回true(逻辑1)。
对于矩阵自变量,返回逻辑1和0的行向量,每个元素指示矩阵相应列的所有元素是否为非零。例如
all ([2, 3; 1, 0]) ⇒ [ 1, 0 ]
如果可选参数dim已提供,按尺寸工作dim.
详见: any.
从于比较运算符(详见比较运算符)返回一和零的矩阵,很容易测试矩阵的许多方面,而不仅仅是元素是否为非零。例如
all (all (rand (5) < 0.9)) ⇒ 0
测试一个随机的5乘5矩阵,看看它的所有元素是否都小于0.9。
请注意,在条件上下文中(如的test子句if
和while
语句)Octave将测试视为您已输入all (all (condition))
.
z =
xor (x, y)
¶z =
xor (x1, x2, …)
¶返回独占或属于x和y.
对于布尔表达式x和y,xor (x, y)
是真的当且仅当x或y是真的。否则,如果x和y都是真的或都是假的,xor
返回false。
xor操作的真值表为
x | y | z | ||
- | - | - | ||
0 | 0 | 0 | ||
1 | 0 | 1 | ||
0 | 1 | 1 | ||
1 | 1 | 0 |
如果给定两个以上的参数,则从左到右累积应用xor运算:
(...((x1 XOR x2) XOR x3) XOR ...)
y =
diff (x)
¶y =
diff (x, k)
¶y =
diff (x, k, dim)
¶如果x是长度的向量n, diff (x)
是第一差的向量x2.x1.xnx(n-1)。
如果x是矩阵,diff (x)
是沿第一个非奇异维度的列差异矩阵。
第二个参数是可选的。如果被提供,diff (x, k)
这里的k是一个非负整数,返回k-th差异。有可能k大于矩阵的第一个非奇异维数。在这种情况下,diff
继续沿着nextnon singleton维度来处理差异。
可以用可选变量来解释返回差异的维度dim。在这种情况下k-沿该维度计算阶差。在以下情况下k超过size (x, dim)
则返回一个空矩阵。
tf =
isinf (x)
¶返回一个逻辑数组,该数组为true,其中的元素为x在它们不存在的地方是无限的和虚假的。
例如
isinf ([13, Inf, NA, NaN]) ⇒ [ 0, 1, 0, 0 ]
tf =
isnan (x)
¶返回一个逻辑数组,该数组为true,其中的元素为xareNaN值,不包含值的地方为false。
NA值也被认为是NaN值。例如
isnan ([13, Inf, NA, NaN]) ⇒ [ 0, 0, 1, 1 ]
tf =
isfinite (x)
¶返回一个逻辑数组,该数组为true,其中的元素为x是有限的值,不存在的地方为false。
例如
isfinite ([13, Inf, NA, NaN]) ⇒ [ 1, 0, 0, 0 ]
[err, yi, …] =
common_size (xi, …)
¶确定所有输入参数是标量还是通用大小。
如果为真,err为零,并且yi是通用大小的矩阵,所有条目都等于xi如果这是标量或xi否则如果输入不能达到共同的大小,erris1,以及yi是xi例如
[err, a, b] = common_size ([1 2; 3 4], 5) ⇒ err = 0 ⇒ a = [ 1, 2; 3, 4 ] ⇒ b = [ 5, 5; 5, 5 ]
这对于实现参数可以是标量或通用大小的函数非常有用。
详见: size, size_equal, numel, ndims.
idx =
find (x)
¶idx =
find (x, n)
¶idx =
find (x, n, direction)
¶[i, j] =
find (…)
¶[i, j, v] =
find (…)
¶返回矩阵的非零元素的索引向量,作为行,如果x是行向量,否则为列。
为了获得每个矩阵元素的单个索引,Octave假设矩阵的列形成一个长向量(就像存储Fortran数组一样)。例如
find (eye (2)) ⇒ [ 1; 4 ]
如果给出两个输入,n指示从矩阵或向量的开头开始查找的最大元素数。
如果给出三个输入,direction应该是其中之一"first"
或"last"
,仅指定第一个或最后一个n指数。但是,索引总是按顺序返回。
如果指定两个输出,find
返回矩阵中非零元素的行和列索引。例如:
[i, j] = find (2 * eye (2)) ⇒ i = [ 1; 2 ] ⇒ j = [ 1; 2 ]
如果指定三个输出,find
还返回一个包含非零值的向量。例如
[i, j, v] = find (3 * eye (2)) ⇒ i = [ 1; 2 ] ⇒ j = [ 1; 2 ] ⇒ v = [ 3; 3 ]
如果x是大小为m x n x p x…的多维数组…,j包含列位置,就好像x被展平为大小为mx(n+p+…)的二维矩阵。
注意,这个函数对稀疏矩阵特别有用,因为它提取非零元素作为向量,然后可以用来创建原始矩阵。例如:
sz = size (a); [i, j, v] = find (a); b = sparse (i, j, v, sz(1), sz(2));
详见: nonzeros.
idx =
lookup (table, y)
¶idx =
lookup (table, y, opt)
¶中的查找值排序的桌子
此函数通常用作插值的前奏。
如果表在增加,长度为N,并且idx = lookup (table, y)
然后table(idx(i)) <= y(i) < table(idx(i+1))
为所有的y(i)
在表格内。如果y(i) < table(1)
然后idx(i)
为0。如果y(i) >= table(end)
或isnan (y(i))
然后idx(i)
是N。
如果表格在减少,则测试将颠倒。对于非严格单调表,总是跳过空间隔。结果是undefinediftable不是单调的,或者如果table包含NaN。
查找的复杂性为O(M*log(N)),其中M是的大小y。在特殊情况下y也进行了排序,复杂度为O(min(M*log(N),M+N))。
table和y也可以是字符串的元胞数组(或y可以是单个字符串)。在这种情况下,使用字典比较来执行字符串查找。
如果opts如果指定了,则它必须是一个带有字母的字符串,表示其他参数。
m
火柴table(idx(i)) == y(i)
如果y(i)
出现在表中;否则idx(i)
为零。
b
布尔值。idx(i)
是逻辑1或0,指示是否y(i)
是否包含在表中。
l
左边对于数值查找,最左边的子区间应扩展到无穷大(即,所有索引至少为1)。
r
正确的对于数值查找,最右边的子区间应扩展为一致性(即,所有索引最多为N-1)。
注意如果table未对结果进行排序lookup
将是不可预测的。
如果您希望检查变量是否存在,而不是其元素可能具有的属性,详见Status of Variables.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2