y = ceil (x) ¶返回不小于的最小整数x.
这相当于向正无穷大取整。
如果x很复数,返回ceil (real (x)) + ceil (imag (x)) * I.
ceil ([-2.7, 2.7])
⇒ -2 3
y = fix (x) ¶截断的小数部分x并返回整数部分。
这相当于向零取整。如果x很复数,返回fix (real (x)) + fix (imag (x)) * I.
fix ([-2.7, 2.7]) ⇒ -2 2
y = floor (x) ¶返回不大于的最大整数x.
这相当于向负无穷大取整。如果xiscomplex,返回floor (real (x)) + floor (imag (x)) * I.
floor ([-2.7, 2.7])
⇒ -3 2
y = round (x) ¶返回最接近的整数x.
如果x很复数,返回round (real (x)) + round (imag (x)) * I.如果有两个最接近的整数,则返回离零更远的一个。
round ([-2.7, 2.7])
⇒ -3 3
y = roundb (x) ¶返回最接近的整数x。如果有两个接近的整数,则返回偶数(银行四舍五入)。
如果x很复数,返回roundb (real (x)) + roundb (imag (x)) * I.
详见: round.
m = max (x) ¶m = max (x, [], dim) ¶m = max (x, [], vecdim) ¶m = max (x, [], "all") ¶m = max (x, [], nanflag) ¶[m, im] = max (…) ¶[m, im] = max (…, "linear") ¶m = max (x, y) ¶m = max (x, y, nanflag) ¶… = max (…, "ComparisonMethod", method) ¶在数组x中查找最大值.
如果x是一个向量,则max (x)返回x中元素的最大值。
如果x是一个矩阵,则max (x)返回一个行向量,其中每个元素包含x中相应列的最大值。
如果x是一个数组,则max (x)沿着x的第一个非奇异维度计算最大值。
可选输入参数dim指定了要操作的维度,并且必须是正整数。
指定x的任何奇异维度,包括任何超过ndims (x)的维度,将返回x.
用vecdim指定多个维度,一个非重复维度的向量,将沿着由vecdim定义的数组切片操作。
如果vecdim索引所有x的维度,则等效于选项"all".
任何在vecdim中超出ndims (x)的维度将被忽略。
指定维度为"all"将导致max在x的所有元素上操作,等效于
max (x(:)).
如果用两个输出参数调用,max还会返回x中最大值的第一个索引。
第二个输出参数仅在max操作单个输入数组时有效。设置"linear"标志位
将返回x中相应最小值的线性索引。
如果用两个输入矩阵(x和y)调用,那么max返回成对最大值,
根据Broadcasting的规定.
可选的输入参数nanflag指定是否包含或排除NaN值在任何先前指定的输入参数组合。
默认情况下, nanflag的值为"omitnan",这会排除NaN值。
要将NaN值保留在计算中,请将nanflag的值设置为"includenan"。
沿着操作维度的任何NaN值将导致max返回NaN。
可选"ComparisonMethod"键值对参数指定了
数值输入的比较方式,适用于单个和两个输入数组。
method的取值如下:
'auto'这是默认方式,如果x是实数则按real (x)按元素比较,
如果x是复数则按abs (x)按元素比较。
'real'当x是实数或复数时,按real (x)按元素比较。
如果实部相等,则再按imag (x)按元素比较。
'abs'当x是实数或复数时,按abs (x)按元素比较。
如果幅值相等,则再按angle (x)在区间-\pi到\pi之内按元素比较。
m = min (x) ¶m = min (x, [], dim) ¶m = min (x, [], vecdim) ¶m = min (x, [], "all") ¶m = min (x, [], nanflag) ¶[m, im] = min (…) ¶[m, im] = min (…, "linear") ¶m = min (x, y) ¶m = min (x, y, nanflag) ¶… = min (…, "ComparisonMethod", method) ¶在数组中查找最小值x.
如果x是一个向量,则min (x)返回x中元素的最小值。
如果x是一个矩阵,则min (x)返回一个行向量,其中每个元素包含x中相应列的最小值。
如果x是一个数组,则min (x)沿着x的第一个非奇异维度计算最小值。
可选输入参数dim指定要操作的维度,必须是正整数。
指定x的任何奇异维度,包括任何超过ndims (x)的维度,将返回x.
用vecdim指定多个维度,一个非重复维度的向量,将沿着由vecdim定义的数组切片操作。
如果vecdim索引所有x的维度,则等效于选项"all".
任何在vecdim中超出ndims (x)的维度将被忽略。
指定维度为"all"将导致min在所有x的元素上操作,等效于min (x(:)).
如果使用两个输出参数调用,min还会返回x的最小值的索引。
第二个输出参数仅在min操作单个输入数组时有效。设置"linear"标志位
将返回x中相应最小值的线性索引。
如果用两个输入矩阵(x和y)调用,那么min返回成对最小值,
根据Broadcasting的规定.
可选的输入参数nanflag指定是否包含或排除NaN值在任何先前指定的输入参数组合。
默认情况下, nanflag的值为"omitnan",这会排除NaN值。
要将NaN值保留在计算中,请将nanflag的值设置为"includenan"。
沿着操作维度的任何NaN值将导致min返回NaN。
可选"ComparisonMethod"键值对参数指定了
数值输入的比较方式,适用于单个和两个输入数组。
method的取值如下:
'auto'这是默认方式,如果x是实数则按real (x)按元素比较,
如果x是复数则按abs (x)按元素比较。
'real'当x是实数或复数时,按real (x)按元素比较。
如果实部相等,则再按imag (x)按元素比较。
'abs'当x是实数或复数时,按abs (x)按元素比较。
如果幅值相等,则再按angle (x)在区间-\pi到\pi之内按元素比较。
M = cummax (x) ¶m = cummax (x, dim) ¶m = cummax (x, vecdim) ¶m = cummax (x, "all") ¶m = cummax (…, direction) ¶m = cummax (x, nanflag) ¶[m, im] = cummax (…) ¶[m, im] = cummax (…, "linear") ¶… = cummax (…, "ComparisonMethod", method) ¶返回x的累积最大值。
如果x是一个向量,则cummax (x)返回一个与x相同大小的向量,其中包含x的累积最大值。
如果x是一个矩阵,则cummax (x)返回一个与x相同大小的矩阵,其中包含x沿着每列的累积最大值。
如果x是一个数组,则cummax(x)沿着x的第一个非奇异维度累积。
输出y的类型与x的类型相同,除非x是逻辑类型,此时y为双精度。
可选输入参数dim指定要操作的维度,并且必须是正整数。
指定x的任何奇异维度,包括任何超过ndims (x)的维度,将返回x.
用vecdim指定多个维度,一个非重复维度的向量,将沿着由vecdim定义的数组切片操作。
如果vecdim索引所有x的维度,则等效于选项"all".
任何在vecdim中超出ndims (x)的维度将被忽略。
指定维度为"all"将导致cummax在所有x的元素上操作,等效于cummax (x(:)).
可选输入参数direction指定操作维度的遍历方式,可以取以下值:
"forward" (default)从开始(索引1)到结束沿着操作维度计算累积最大值。
"reverse"从结束到开始沿着操作维度计算累积最大值。
可选的输入参数nanflag指定是否包含或排除NaN值在任何先前指定的输入参数组合。
默认情况下, nanflag的值为"omitnan",这会排除NaN值。
要将NaN值保留在计算中,请将nanflag的值设置为"includenan"。
沿着操作维度的任何NaN值将导致max返回NaN。
如果使用两个输出参数调用,cummax还会返回x的最小值的索引。
设置"linear"标志位
将返回x中相应最小值的线性索引。
可选"ComparisonMethod"键值对参数指定了
数值输入的比较方式,适用于单个和两个输入数组。
method的取值如下:
'auto'这是默认方式,如果x是实数则按real (x)按元素比较,
如果x是复数则按abs (x)按元素比较。
'real'当x是实数或复数时,按real (x)按元素比较。
如果实部相等,则再按imag (x)按元素比较。
'abs'当x是实数或复数时,按abs (x)按元素比较。
如果幅值相等,则再按angle (x)在区间-\pi到\pi之内按元素比较。
M = cummin (x) ¶m = cummin (x, dim) ¶m = cummin (x, vecdim) ¶m = cummin (x, "all") ¶m = cummin (…, direction) ¶m = cummin (x, nanflag) ¶[m, im] = cummin (…) ¶[m, im] = cummin (…, "linear") ¶… = cummin (…, "ComparisonMethod", method) ¶返回x的累积最小值。
如果x是一个向量,则cummin (x)返回一个与x相同大小的向量,其中包含x的累积最小值。
如果x是一个矩阵,则cummin (x)返回一个与x相同大小的矩阵,其中包含沿着x每列的累积最小值。
如果x是一个数组,则cummin(x)沿着x的第一个非奇异维度累积。
输出y的类型与x的类型相同,除非x是逻辑类型,此时y为双精度。
可选输入参数dim指定要操作的维度,并且必须是正整数。
指定x的任何奇异维度,包括任何超过ndims (x)的维度,将返回x.
用vecdim指定多个维度,一个非重复维度的向量,将沿着由vecdim定义的数组切片操作。
如果vecdim索引所有x的维度,则等效于选项"all".
任何在vecdim中超出ndims (x)的维度将被忽略。
指定维度为"all"将导致cummin在所有x的元素上操作,等效于cummin (x(:)).
可选输入参数direction指定操作维度的遍历方式,可以取以下值:
"forward" (default)从开始(索引1)到结束沿着操作维度计算累积最小值。
"reverse"从结束到开始沿着操作维度计算累积最小值。
可选的输入参数nanflag指定是否包含或排除NaN值在任何先前指定的输入参数组合。
默认情况下, nanflag的值为"omitnan",这会排除NaN值。
要将NaN值保留在计算中,请将nanflag的值设置为"includenan"。
沿着操作维度的任何NaN值将导致max返回NaN。
如果使用两个输出参数调用,cummin还会返回x的最小值的索引。
设置"linear"标志位
将返回x中相应最小值的线性索引。
可选"ComparisonMethod"键值对参数指定了
数值输入的比较方式,适用于单个和两个输入数组。
method的取值如下:
'auto'这是默认方式,如果x是实数则按real (x)按元素比较,
如果x是复数则按abs (x)按元素比较。
'real'当x是实数或复数时,按real (x)按元素比较。
如果实部相等,则再按imag (x)按元素比较。
'abs'当x是实数或复数时,按abs (x)按元素比较。
如果幅值相等,则再按angle (x)在区间-\pi到\pi之内按元素比较。
h = hypot (x, y) ¶h = hypot (x, y, z, …) ¶按元素计算的平方和的平方根x和y.
这相当于sqrt (x.^2 + y.^2),但是以避免大值溢出的方式进行计算x或y.
hypot也可以用两个以上的参数调用;在这种情况下,参数是从左到右累积的:
hypot (hypot (x, y), z) hypot (hypot (hypot (x, y), z), w), etc.
dx = gradient (m) ¶[dx, dy, dz, …] = gradient (m) ¶[…] = gradient (m, s) ¶[…] = gradient (m, sx, sy, sz, …) ¶[…] = gradient (f, x0) ¶[…] = gradient (f, x0, s) ¶[…] = gradient (f, x0, sx, sy, …) ¶计算采样数据或函数的梯度。
d d d
grad F(x,y,z) = -- F(x,y,z) i + -- F(x,y,z) j + -- F(x,y,z) k
dx dy dz
如果m是一个向量,那么计算一维数值梯度m。如果m是一个矩阵,则计算每个维度的梯度。 返回的参数是每个维度在指定样本点的估计偏导数。
默认的样本间距为1。样本间距可以通过s参数指定。如果s是一个标量,则假定它用于所有维度。 否则,分开的间距值可以通过sx, …参数提供。标量值指定等距。向量值的sx, …参数指定该维度的坐标。 长度必须分别与尺寸m匹配.
如果第一个参数f是一个函数句柄,则计算函数在点x0处的梯度。 像采样数据一样,可以通过s 或 dx, dy, … 参数指定样本点之间的间距。 默认情况下,使用间距1,但是除非函数变化非常缓慢,否则通常过大,并且通常需要指定较小的样本间距。
例如: cos (分析 = -sin)的数值梯度
gradient (@cos, pi/2, .1) ⇒ -0.9983 -sin (pi/2) ⇒ -1
注意: 内点的梯度值是使用中心差分近似的。
y'(i) = 1/2 * (y(i+1) - y(i-1)).
在边界点应用线性外推。
y'(1) = y(2) - y(1).
z = dot (x, y) ¶z = dot (x, y, dim) ¶计算两个向量的点积。
如果x和y是矩阵,计算沿着第一个非奇异维度的点积。
如果可选参数dim给出了,计算了该尺寸上的点积。
支持说明:这相当于sum (conj (X) .* Y, dim),但是避免了形成多个数组并且速度更快。当X和Y是列向量,结果等效于X' * Y虽然dot是为整数数组定义的,因为整数对象的范围有限,输出可能与预期结果不同。
详见: cross,divergence,tensorprod.
z = cross (x, y) ¶z = cross (x, y, dim) ¶计算两个三维向量的向量叉积x和y.
如果x和y是矩阵,叉积沿着第一维度应用于三个元素。
可选参数dim强制计算指定尺寸的叉积。如果维度 不是三维则报错。
在复杂输出的情况下,输出相对于输入的正交性也得到满足,并且条件
dot (conj (z), x) ≡ dot (conj (z), y) = 0
满足。 dot (z, x) = 0 和
dot (z, y) = 0 不会保留。
另外注意,在不使用dot函数的情况下,内积
z(:).' * x(:) ≡ z(:).' * y(:) = 0
满足和输入向量的的正交条件。
示例代码:
cross ([1, 1, 0], [0, 1, 1])
⇒
1 -1 1
cross (magic (3), eye (3), 2)
⇒
0 6 -1
-7 0 3
9 -4 0
详见: dot, curl, divergence, conj.
div = divergence (x, y, z, fx, fy, fz) ¶div = divergence (fx, fy, fz) ¶div = divergence (x, y, fx, fy) ¶div = divergence (fx, fy) ¶计算数组给出的向量场的散度fx,fy和fz或fx,fy分别地
d d d
div F(x,y,z) = -- F(x,y,z) + -- F(x,y,z) + -- F(x,y,z)
dx dy dz
向量场的坐标可以从参数给出x,y,z或x,y分别地
[cx, cy, cz, v] = curl (x, y, z, fx, fy, fz) ¶[cz, v] = curl (x, y, fx, fy) ¶[…] = curl (fx, fy, fz) ¶[…] = curl (fx, fy) ¶v = curl (…) ¶计算数组给出的向量场的旋度fx,fy和fz或fx,fy分别地
/ d d d d d d \
curl F(x,y,z) = | -- Fz - -- Fy, -- Fx - -- Fz, -- Fy - -- Fx |
\ dy dz dz dx dx dy /
向量场的坐标可以从参数给出x,y,z或x,y分别地v计算二维输入的角速度向量在z轴方上级标量分量。对于三维输入,在向量场方上级每个网格点上计算标量化。
详见: divergence,gradient,del2,cross.
L = del2 (M) ¶L = del2 (M, h) ¶L = del2 (M, dx, dy, …) ¶计算离散拉普拉斯算子。
对于二维矩阵M(x, y)这被定义为
1 / d^2 d^2 \
L = --- * | --- M(x,y) + --- M(x,y) |
4 \ dx^2 dy^2 /
对于N维数组,括号中的和被扩展为包括附加的更高维度上的二阶导数。
评估点之间的间距可以定义为h,定义了所有维度上的等距间距。或者,每个维度中的间距可以通过以下方式单独定义dx,dy等。标量间距自变量定义等距间距,而向量自变量可用于指定可变间距。间距向量的长度必须与的相应尺寸相匹配M。默认间距值为1。
跳过数据点少于3个的维度。边界点是根据内部点的线性外推法计算的。
示例:2*x^3的二阶导数
f = @(x) 2*x.^3; dd = @(x) 12*x; x = 1:6; L = 4*del2 (f(x)); assert (L, dd (x));
f = factorial (n) ¶返回的阶乘n这里的n是一个真正的非否定的接受者。
如果n是标量,这等效于prod (1:n)。对于向量或矩阵参数,返回数组中每个元素的阶乘。
对于非整数,详见广义阶乘函数gamma请注意,阶乘函数增长得很快,即使使用双精度值,如果n> 171. Forsuch案例考虑gammaln.
pf = factor (q) ¶[pf, n] = factor (q) ¶返回的素数因子分解q.
素数因子分解定义为prod (pf) == q其中的每个元素pf是一个素数。如果q == 1,返回1。输出pf与输入属于相同的数字类。
使用两个输出参数,返回唯一的素数pf及其多样性。也就是说,prod (pf .^ n) == q.
支持说明:如果输入q是single或double,则不得超过相应的flintmax。对于较大的输入,请将其投射到uint64如果它们小于2^64:
factor (uint64 (18446744073709011493)) ⇒ 571111 761213 42431951
对于更大的输入,使用sym如果已安装并加载符号包:
factor (sym ('9444733049654361449941'))
⇒ (sym)
1 1
1099511627689 ⋅8589934669
g = gcd (a1, a2, …) ¶[g, v1, …] = gcd (a1, a2, …) ¶计算的最大公约数a1,a2, ...
所有参数的大小或标量必须相同。对于数组,将分别为每个元素计算最大公约数。所有元素都必须是普通整数或高斯(复数)整数。注意,对于高斯整数,gcd仅在相位因子(乘以1、-1、i或-i)之前是唯一的,因此返回四个可能的整数中的任意最大公约数。
可选的返回参数v1,…,包含整数向量,
g = v1 .* a1 + v2 .* a2 + ...
示例代码:
gcd ([15, 9], [20, 18]) ⇒ 5 9
编程提示:要查找单个数组中所有元素的GCD,请使用num2cell而不是嵌套调用或循环:
x = [30 42 70 105]; # vector or array of inputs
gcd (num2cell (x) {:})
⇒ 1
l = lcm (x, y) ¶l = lcm (x, y, …) ¶计算的最小公倍数x和y,或所有参数列表的。
所有输入必须具有相同的大小或标量。所有元素都必须是贝雷阿尔整数或高斯(复数)整数。对于复数输入,结果仅在相位因子(乘以+1、+i、-1或-i)之前是唯一的,并且四个结果中的一个是任意返回的。
示例代码:
lcm (5:8, 9:12) ⇒ 45 30 77 24
编程提示:要查找单个数组的所有元素的LCM,请使用num2cell而不是嵌套调用或循环:
x = 1:10; # vector or array of inputs
lcm (num2cell (x) {:})
⇒ 2520
r = rem (x, y) ¶返回除法的余数x / y.
余数使用以下表达式计算
x - y .* fix (x ./ y)
如果参数的维度不一致,或者其中一个参数很复数,则会打印错误消息。
编程注意事项:当使用浮点数(双、单)进行计算时,为了兼容,整数的几个eps内的值将在计算前四舍五入到该整数MATLAB.任何大于的浮点整数flintmax(2^53表示双)计算不正确。对于较大的整数值,将输入转换为uint64在调用此函数之前。
按照惯例,
rem (x, 0) = NaN if x is a floating point variable rem (x, 0) = 0 if x is an integer variable rem (x, y) returns a value with the signbit from x
有关相反的约定,详见mod作用一般来说rem在计算除以二后的余数时最好正乐观的数字。对于负数或当值是周期性的时,mod是一个更好的选择。
详见: mod.
m = mod (x, y) ¶计算的模x和y.
从概念上讲,这是从
x - y .* floor (x ./ y)
并且被写入使得对于整数类型返回正确的模数。此函数可正确处理负值。也就是说,mod (-1, 3) 是2,而不是-1,因为rem (-1, 3) 返回。
如果参数的维度不一致,或者其中一个参数很复数,则会导致错误。
编程注意事项:当使用浮点数(双、单)进行计算时,为了兼容,整数的几个eps内的值将在计算前四舍五入到该整数MATLAB.任何大于的浮点整数flintmax(2^53表示双)计算不正确。对于较大的整数值,将输入转换为uint64在调用此函数之前。
按照惯例,
mod (x, 0) = x mod (x, y) returns a value with the signbit from y
有关相反的约定,详见rem作用一般来说mod是比rem当任何输入是负数时,或者当值是周期性的时。
详见: rem.
p = primes (n) ¶将所有素数返回到n.
输出数据类(double、single、uint32等)与的输入类相同n所使用的算法是Eratosthenes筛。
注:对于特定数字n的素数,调用list_primes (n)。或者,调用primes (n*log (k*n))(1:n)这里的kisabout 5或6。这是因为从一个素数到下一个素数的距离平均与素数的对数成正比。关于集成,大约有n素数小于n * log (5*n).
详见: list_primes,isprime.
y = sign (x) ¶计算signum作用
这被定义为
-1, x < 0;
sign (x) = 0, x = 0;
1, x > 0.
对于复数的参数,sign返回x ./ abs (x).
请注意sign (-0.0)为0。尽管IEEE 754浮点允许对零进行赋值,但0.0和-0.0比较起来是相等的。如果必须测试零是否已赋值,请使用signbit作用
详见: signbit.
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2